• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
      • Ajuste de Curvas
      • Calculadora de Matrices
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

¡Acelera tus pruebas unitarias en Jest! Reduce el tiempo de ejecución a menos de la mitad

Jest, TypeScript, Unit testing

marzo 21, 2025 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

Jest es uno de los frameworks de pruebas más populares en JavaScript. Su facilidad de uso y rapidez lo convierten en la opción preferida de muchos desarrolladores. Sin embargo, a medida que los proyectos crecen y el número de pruebas aumenta, los tiempos de ejecución pueden volverse un problema.

Afortunadamente, Jest ofrece un parámetro poco conocido que puede mejorar significativamente el rendimiento de las pruebas: --maxWorkers. En esta entrada, explicaremos cómo afecta este parámetro a la ejecución de las pruebas, analizaremos distintos tiempos de ejecución con varias configuraciones y daremos recomendaciones para optimizar Jest en cada caso. Si quieres reducir el tiempo de espera y aumentar tu productividad, sigue leyendo.

Tabla de contenidos

  • 1 ¿Cómo ejecuta Jest las pruebas?
  • 2 Análisis de tiempos con --maxWorkers
    • 2.1 Ejecutando Jest sin parámetros adicionales
    • 2.2 Ejecutando Jest con --maxWorkers=1 (un solo proceso)
    • 2.3 Ejecutando Jest con --maxWorkers=2 (dos procesos)
    • 2.4 Ejecutando Jest con --maxWorkers=8 (ocho procesos)
    • 2.5 Análisis de los tiempos
  • 3 ¡Encuentra la configuración óptima para tu proyecto!
  • 4 Conclusiones

¿Cómo ejecuta Jest las pruebas?

Cuando ejecutas Jest sin parámetros adicionales, ejecutando simplemente:

npx jest

Jest determina automáticamente el número óptimo de procesos de prueba paralelos (workers) según los recursos de tu máquina, generalmente en función del número de núcleos disponibles. Aunque esta configuración suele ser eficiente, no siempre es la mejor opción.

El parámetro --maxWorkers permite ajustar manualmente la cantidad de procesos concurrentes que Jest utilizará. En proyectos grandes, Jest puede consumir demasiados recursos si ejecuta muchas pruebas en paralelo. Ajustar correctamente --maxWorkers puede reducir la carga en la CPU y mejorar la velocidad general de las pruebas.

Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT
En Analytics Lane
Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT

Análisis de tiempos con --maxWorkers

Para ilustrar el impacto de --maxWorkers, ejecutamos Jest con diferentes configuraciones en un proyecto con 132 pruebas en 31 suites.

Publicidad


Ejecutando Jest sin parámetros adicionales

En la configuración básica se ejecuta el siguiente comando:

npx jest

Resultados:

Test Suites: 31 passed, 31 total
Tests: 132 passed, 132 total
Snapshots: 0 total
Time: 18.769 s

Las pruebas se ejecutaron en 18.7 segundos.

Ejecutando Jest con --maxWorkers=1 (un solo proceso)

Ahora se puede evaluar cual sería el tiempo que necesita JEST para ejecutar las pruebas solo con un proceso:

npx jest --maxWorkers=1

Resultados:

Test Suites: 31 passed, 31 total
Tests: 132 passed, 132 total
Snapshots: 0 total
Time: 13.261 s

El tiempo se redujo a 13.2 segundos (una mejora de casi el 30%).

Ejecutando Jest con --maxWorkers=2 (dos procesos)

Tras ves la mejora con un proceso, se puede ver lo que pasaría con dos:

npx jest --maxWorkers=2

Resultados:

Test Suites: 31 passed, 31 total
Tests: 132 passed, 132 total
Snapshots: 0 total
Time: 8.515 s

Ahora, el tiempo de ejecución se reduce a 8.5 segundos, menos de la mitad en comparación con la configuración por defecto.

Publicidad


Ejecutando Jest con --maxWorkers=8 (ocho procesos)

Visto la mejora con 2, se puede probar con 8, a ver si el tiempo sigue reduciéndose:

npx jest --maxWorkers=8

Resultados:

Test Suites: 31 passed, 31 total
Tests: 132 passed, 132 total
Snapshots: 0 total
Time: 11.306 s

Curiosamente, el tiempo aumentó a 11.3 segundos. Esto sugiere que existe un punto óptimo para la cantidad de workers.

Análisis de los tiempos

En base a los resultados que se han visto en el proyecto de ejemplo se pueden extraer algunas conclusiones respecto al efecto de --maxWorkers en los tiempos de ejecución de las pruebas:

  1. Usar un solo worker (--maxWorkers=1) mejora el tiempo con respecto a la configuración predeterminada (18.7s → 13.2s), eliminando la sobrecarga de la paralelización.
  2. Usar dos workers (--maxWorkers=2) optimiza significativamente la ejecución (13.2s → 8.5s), equilibrando paralelismo y gestión de procesos.
  3. Usar demasiados workers (--maxWorkers=8) empeora el rendimiento (8.5s → 11.3s), debido al sobrecarga que require administrar demasiados procesos en paralelo.

Estos resultados demuestran que más workers no siempre significan mejor rendimiento. En cada proyecto, existe un punto óptimo que depende del hardware y tipo de las pruebas que se debe terminar de forma empírica.

¡Encuentra la configuración óptima para tu proyecto!

Cada proyecto es diferente, por lo que es recomendable probar distintas configuraciones de --maxWorkers. Una estrategia efectiva puede ser:

  1. Ejecutar Jest con distintos valores de maxWorkers: prueba con 1, 2, 4, 8 y auto.
  2. Comparar los tiempos de ejecución y determinar el valor óptimo según el hardware y la complejidad de las pruebas.

Publicidad


Conclusiones

El parámetro --maxWorkers en Jest puede reducir significativamente el tiempo de ejecución de las pruebas si se configura correctamente. En nuestro caso de prueba, --maxWorkers=2 fue la mejor opción, pero los resultados variarán según el hardware y la naturaleza de las pruebas.

Recomendaciones finales:

  • No asumas que la configuración predeterminada de Jest es la mejor.
  • Experimenta con --maxWorkers para encontrar el número óptimo.
  • Más procesos no siempre significan mejor rendimiento.
  • Considera el tipo de pruebas: cuando se realizan muchas operaciones de I/O, la paralelización suele ser más efectiva.

Si Jest es una parte fundamental de tu desarrollo, invertir unos minutos en optimizar su rendimiento puede ahorrarte un tiempo valioso en cada ejecución. ¡Prueba esta configuración y acelera tus pruebas unitarias hoy mismo!

Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT
  • El bestiario de los indicadores económicos absurdos: El zoo patrio
  • Las fórmulas con DNI, o cómo dividir cualquier cosa entre cualquier otra cosa puede acabar publicado en un titular serio – El bestiario de los indicadores económicos absurdos (parte 5)
  • Data Leakage en Credit Scoring: El Error que Invalida tu Modelo
  • La liga internacional, o cuando Harvard y Johns Hopkins suman peras con manzanas – El bestiario de los indicadores económicos absurdos (parte 6)
  • Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)
  • Customer Lifetime Value: la fórmula clásica que todo analista debería dominar
  • PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado
  • DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Publicado en: JavaScript Etiquetado como: Jest, TypeScript, Unit testing

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

julio 21, 2026 Por Daniel Rodríguez

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

julio 16, 2026 Por Daniel Rodríguez

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

julio 14, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado publicado el julio 21, 2026 | en Ciencia de datos
  • Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales publicado el mayo 12, 2026 | en Python
  • ¿Por qué recibo ‘NameError: name X is not defined’ en Python? Aprende cómo solucionarlo publicado el marzo 17, 2025 | en Python
  • Nuevo simulador del problema de Monty Hall en el laboratorio de aplicaciones de Analytics Lane publicado el abril 8, 2026 | en Noticias
  • Figura en la que se combinan las ventas por departamento el detalle de uno de ellos usando graficas de tarta. Crear dos gráficos de tarta para ofrecer información detallada de subcategorías en Python publicado el octubre 28, 2024 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.1 (11)

Aplicar el método D’Hondt en Excel

Comentarios recientes

  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no
  • bif en Cómo desinstalar Oracle Database 19c en Windows
  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto