Qué hay de nuevo en el Node.js Test Runner y por qué es revolucionario

Rate this content
Bookmark

El nuevo test runner de Node es bastante genial pero todavía no mucha gente lo está utilizando. En mi charla, te mostraré todas las cosas interesantes que puede hacer, incluyendo algunas características en las que trabajé. Echaremos un vistazo bajo el capó de Node para ver cómo funcionan las simulaciones y cómo usarlas. También hablaré sobre lo que viene para el runner y qué esperar en el futuro. ¡Prepárate para mejorar tu juego de pruebas con aserciones nativas y mantener las cosas funcionando rápido!

This talk has been presented at Node Congress 2024, check out the latest edition of this JavaScript Conference.

Lucas Santos
Lucas Santos
17 min
04 Apr, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
El Node.js Test Runner se presenta como una mejor alternativa a Jest, ofreciendo más flexibilidad y mejor rendimiento. Admite TypeScript de forma nativa y proporciona una visualización completa del conjunto de pruebas. El test runner tiene soporte nativo para la cobertura de código y las próximas características incluyen simulación de módulos y mejor filtrado. Cambiar al test runner es simple y ayuda al crecimiento de la comunidad.

1. Introducción al Node.js Test Runner

Short description:

Hola a todos. Hoy vamos a hablar sobre el Node.js Test Runner. Soy Luca Santos, un ingeniero de software senior en OpenVault. Puedes contactarme en Twitter e Instagram en elsantos.dev.

Hola a todos. Hoy vamos a hablar sobre el Node.js Test Runner. Así que primero que nada, me voy a presentar. Mi nombre es Luca Santos. Soy uno de los ingenieros de software senior en OpenVault hoy en día. Vivo en Suecia. Soy originario de Brasil. Y puedes contactarme en cualquiera de mis redes sociales. Básicamente, están las que están en la parte inferior. Twitter.elsantos.dev, Instagram.elsantos.dev. Ya sabes, entiendes la idea. Luca es un nombre muy común en Brasil. Así que básicamente, tuve que elegir DNS sobre Nix en las redes sociales. Así que solo coloca el nombre de la red social seguido de .elsantos.dev. O si tienes dudas sobre alguna red social en la que quieras hablar conmigo, solo .elsantos.dev te llevará a mi página principal donde está todo. ¿De acuerdo? Estoy totalmente abierto a hablar de cualquier cosa. Así que contáctame y será muy agradable.

2. Los beneficios del Node.js Test Runner

Short description:

Mi objetivo con esta charla es hacer que dejes de usar Jest por algo mejor, el Node.js test runner. Jest está desactualizado y tiene limitaciones. El Node.js test runner se mejora constantemente y ofrece más flexibilidad. Los test runners actuales son difíciles de configurar, especialmente para TypeScript, y a menudo requieren bibliotecas adicionales que pueden ralentizar tu proyecto. También carecen de interoperabilidad y pueden ser inflexibles.

A continuación, compartiré mi objetivo en esta charla contigo. ¿Cuál es el objetivo que tengo con esta charla? Es hacer que dejes de usar Jest al final. Así de simple. No odio Jest. De hecho, lo uso mucho. Pero he tenido mi parte justa de problemas. Y creo que es hora de seguir adelante, ¿verdad? Creo que es hora de que necesitamos algo nuevo, algo mejor. Jest es muy antiguo, ¿verdad? Es muy bueno, pero el tiempo ha pasado, ¿verdad?

Así que voy a hacer esto. Te voy a presentar algo que posiblemente sea mejor. Pero ¿por qué posiblemente mejor? Bueno, porque el Node.js test runner todavía se está mejorando activamente. Así que hay muchas cosas que están sucediendo. Hay muchas cosas que ya tenemos, pero aún faltan muchas cosas. Así que puedes ayudar si quieres, ¿de acuerdo?

Pero primero, ¿qué es malo en el entorno actual? ¿Por qué necesitamos otro test runner? ¿No es suficiente lo que tenemos hoy? Básicamente, lo primero es que son demasiado difíciles de configurar, especialmente para TypeScript. Y hacen muchas cosas. Configurar Jest es un dolor. Es un archivo de configuración muy grande. Hacen muchas cosas. Hacen transformaciones, hacen análisis, hacen movimientos, hacen aserciones, tienen cobertura. Es simplemente demasiado. Y esto los hace lentos, ¿verdad? Porque, bueno, es demasiado. Y luego tienes un concepto que llaman yall, que básicamente es otra biblioteca más en tu proyecto. Porque los runners, en mi opinión, deberían ser una parte de tu entorno de ejecución. No deberías poder instalar, no deberías instalar otra biblioteca para tener un runner. Y recuerda, cada otra biblioteca, cada paquete que se instala en tu proyecto es un code que no mantienes, pero en el que aún dependes, ¿verdad? Así que si algo sucede, pagarás el precio. Y los test runners parecen no querer interoperar entre sí. Se aseguran de que solo puedas usarlos a ellos y a nada más. Así que es muy difícil cambiar de uno a otro. Son cosas completamente diferentes. La mayoría de ellos son bastante dogmáticos. Así que son o muy extensibles o no extensibles en absoluto.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Cómo Bun hace que la construcción de aplicaciones React sea más simple y rápida
React Day Berlin 2022React Day Berlin 2022
9 min
Cómo Bun hace que la construcción de aplicaciones React sea más simple y rápida
BUN is a modern all-in-one JavaScript runtime environment that achieves new levels of performance. It includes BUN dev, a fast front-end dev server, BUN install, a speedy package manager, and BUN run, a fast package runner. BUN supports JSX, has optimized React server-side rendering, and offers hot module reloading on the server. The priorities for BUN include stability, node compatibility, documentation improvement, missing features in BUN install, AST plugin API, native Windows support, Bundler and Minifier optimization, and easier deployment to production. BUN's AST plugin API allows for bundle-time JavaScript execution and embedding code, potentially inspiring new frameworks.
Compatibilidad con Node.js en Deno
Node Congress 2022Node Congress 2022
34 min
Compatibilidad con Node.js en Deno
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
Node Congress 2023Node Congress 2023
29 min
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
The Talk explores the magic behind Node.js and delves into its components, including V8, libuv, and the C++ bridge. It discusses the workflow and execution process, the use of NodeMod, and the understanding of console functions. The Talk also covers Node.js functions and scheduling, the introduction of runtimes, and the collaboration between JavaScript runtimes. It concludes with insights on content production, the choice of Node.js, and the inspiration behind it.
Evaluar todas las cadenas! - JavaScript endurecido
Node Congress 2023Node Congress 2023
8 min
Evaluar todas las cadenas! - JavaScript endurecido
NPM packages can be potentially dangerous, so it's important to be proactive in managing them. Lava Mode allows you to detect and investigate suspicious packages before deploying your app. Lavamote prevents unauthorized access to sensitive resources by isolating dependencies and using hardened JavaScript. Lava Mode makes it easier to analyze obfuscated files and understand their actions.
El Futuro de los Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
El Futuro de los Runtimes de JavaScript
Today's Talk explores the future of JavaScript runtimes, their evolution, and impact on software development. It discusses the historical trends of JavaScript, the adoption of new tools and libraries, and the convergence of Node and Deno. The emergence of isolate clouds and their potential to replace traditional VMs and containers is also highlighted. Additionally, the talk touches on the possibilities of JavaScript in exotic use cases, its impact on machine learning, and the potential for TypeScript to become the de facto language for JavaScript development.
Crea tu propio tiempo de ejecución de JavaScript
Node Congress 2023Node Congress 2023
21 min
Crea tu propio tiempo de ejecución de JavaScript
This Talk introduces Deno, a custom JavaScript runtime similar to Node.js, and discusses the benefits of using a custom runtime. It explores the process of building a custom runtime with Deno in Rust, including the integration with Cargo and the ability to mix and match crates and APIs. The Talk also covers the implementation of the setTimeout function in both Run.js and Runtime.js, and provides examples of how to fix errors and implement additional functions. Overall, the Talk highlights the flexibility and possibilities of creating custom runtimes with Deno.

Workshops on related topic

Construye aplicaciones peer-to-peer con Pear Runtime
JSNation 2024JSNation 2024
152 min
Construye aplicaciones peer-to-peer con Pear Runtime
WorkshopFree
David Mark Clements
David Mark Clements
Aprende cómo construir rápidamente aplicaciones peer-to-peer con Pear Runtime. No se requieren servidores. Comprende los paradigmas peer-to-peer y construye aplicaciones a partir de bloques de construcción bien definidos. En este masterclass se cubrirá cómo crear aplicaciones de escritorio y terminales (con discusión para móviles) que funcionan completamente peer-to-peer desde cualquier lugar del mundo. Al final de este masterclass, deberías saber cómo construir un nuevo tipo de aplicación altamente escalable con costos infraestructurales reducidos (~0) junto con arquitecturas adecuadas y mejores prácticas para aplicaciones peer-to-peer. Del creador de Pear Runtime y la compañía que nos trae keet.io. Tabla de contenido:- Introducción a Pear- Preguntas y respuestas iniciales- Configuración- Creación de una aplicación de escritorio Pear- Compartir una aplicación Pear- Ejecutar una aplicación Pear- Creación de una aplicación terminal Pear- Lanzamiento de una aplicación Pear- Discusiones arquitecturales- Preguntas y respuestas finales