vitest --changed: por qué omite pruebas y la solución con cobertura runtime

¿Tu CI ejecuta todas las pruebas? Descubre por qué vitest --changed omite pruebas dinámicas y cómo la cobertura runtime lo soluciona. ¡Ahorra tiempo!

18 jun 2026 • 4 min de lectura • Equipo Q2BSTUDIO

Cobertura runtime: solución para pruebas que vitest --changed ignora

En los pipelines modernos de integración continua, cada confirmación de código desencadena una ejecución completa de pruebas. Con el tiempo, el conjunto de tests crece y los tiempos de espera se vuelven un cuello de botella. Para aliviar esto, herramientas como vitest --changed o jest --findRelatedTests prometen ejecutar solo las pruebas afectadas por los cambios. Su estrategia se basa en el análisis estático del grafo de importaciones: recorren los módulos, siguen las sentencias import y require, y determinan qué archivos de test importan transitivamente el archivo modificado. En la mayoría de los casos, este enfoque funciona de manera impecable y ahorra recursos valiosos.

Sin embargo, existe un punto ciego importante que puede convertir una herramienta útil en una fuente de errores silenciosos. El análisis estático falla cuando la ruta del módulo no es un literal sino un valor calculado en tiempo de ejecución. Imaginar un sistema de registro de plugins que carga módulos a partir de un mapa de nombres a rutas, o un contenedor de inyección de dependencias que resuelve implementaciones dinámicamente. En esos escenarios, el enlace entre el test y el archivo fuente no aparece en el grafo de imports estático. Si modificamos un fichero que solo se referencia a través de esa lógica dinámica, vitest --changed y jest --findRelatedTests responderán que no hay pruebas que ejecutar, cuando en realidad sí las hay. Es el peor fracaso de un selector de pruebas: un falso negativo que deja pasar una regresión.

La solución a este problema no proviene de mejorar el análisis estático, sino de cambiar el enfoque: usar la cobertura en tiempo de ejecución como mapa de dependencias. En lugar de preguntar '¿qué podría importar este archivo?', preguntamos '¿qué archivos tocó realmente esta prueba durante su última ejecución?'. La cobertura por test registra qué líneas de qué ficheros se ejecutaron. Si un test ejecuta un módulo cargado dinámicamente, esa conexión queda registrada. Así, cuando un cambio afecta a un archivo, podemos consultar el mapa de cobertura y saber exactamente qué tests deben volver a ejecutarse. Este enfoque funciona tanto para Vitest como para Jest, y maneja de forma natural los casos de registro de plugins, inyección de dependencias, barreras de características y cualquier otro patrón que dependa de rutas calculadas en tiempo de ejecución.

Construir ese mapa de cobertura por test parecería costoso: ejecutar cada archivo de test por separado con cobertura activada multiplica el tiempo de ejecución. Sin embargo, es posible hacerlo en una sola pasada: dividiendo los tests en lotes (shards), ejecutando cada lote en serie dentro de un proceso, y capturando la cobertura acumulativa después de cada archivo. Comparando el estado anterior con el posterior, deducimos qué cobertura fue aportada por ese test concreto. Este método resulta más rápido y consume menos CPU que la ejecución paralela individual. El mapa se vuelve incremental: si un test no ha cambiado, se reutiliza su registro anterior, por lo que las actualizaciones son prácticamente instantáneas.

Ninguna herramienta de selección de pruebas es perfecta. El mapa de cobertura captura relaciones que el análisis estático pierde, pero este último gana cuando un cambio afecta a una rama del código que aún no ha sido ejercitada por ninguna ejecución de test previa. Por eso, un selector robusto debe aplicar una regla de seguridad: ante la duda, ejecutar más, nunca menos. Cuando un archivo modificado no aparece en el mapa de cobertura, lo sensato es ejecutar toda la suite. También es recomendable que la herramienta explique por qué cada test fue seleccionado o saltado, eliminando la opacidad. Algunas soluciones exploran incluso el uso de modelos de lenguaje para refinar la selección de cambios no mapeados, pero siempre con el mismo principio: pueden añadir tests, nunca quitarlos.

En entornos empresariales, especialmente en desarrollo de software a medida y en servicios cloud AWS y Azure, los pipelines de CI/CD gestionan decenas de miles de pruebas a diario. La eficiencia no puede comprometer la fiabilidad. Una estrategia de selección de pruebas basada en cobertura runtime, combinada con el análisis estático tradicional, ofrece lo mejor de ambos mundos: velocidad y seguridad. En Q2BSTUDIO acompañamos a las empresas en la implementación de estas arquitecturas de pruebas robustas, integradas con herramientas de inteligencia de negocio como Power BI para monitorizar la calidad, y apoyadas en inteligencia artificial para empresas que optimizan la toma de decisiones. Además, nuestros equipos de ciberseguridad aseguran que ningún cambio malicioso pase desapercibido, y nuestras soluciones de automatización de procesos permiten que los pipelines se adapten dinámicamente.

En definitiva, herramientas como testpick demuestran que es posible reducir drásticamente el tiempo de espera en CI sin sacrificar la detección de regresiones. La clave está en cambiar la pregunta: de '¿qué podría importar?' a '¿qué se ejecutó realmente?'. Para los equipos que trabajan con patrones dinámicos - registros de plugins, inyección de dependencias o arquitecturas modulares - este enfoque no es una mejora menor, sino una necesidad para mantener la confianza en el pipeline. En Q2BSTUDIO creemos que la calidad del software se construye con procesos inteligentes, y la selección de pruebas basada en cobertura es un pilar fundamental para lograrlo.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat