Vitest
Hacer tests unitarios y de integración en proyectos con Vite sin configurar Jest ni transformadores adicionales.
Framework de testing para proyectos Vite. Compatible con la API de Jest, TypeScript y ESM nativos, y watch mode ultrarrápido.
Notas y contexto
Qué es
Vitest es el framework de testing nativo para proyectos Vite. Reutiliza la configuración de Vite existente (plugins, aliases, mocks) y corre los tests con el mismo pipeline, lo que elimina el desfase entre “funciona en dev pero falla en tests” típico de Jest.
Para qué sirve
- Escribir tests unitarios y de integración con una API prácticamente idéntica a Jest.
- Ejecutar tests con soporte nativo de TypeScript y ESM sin configurar Babel ni ts-jest.
- Aprovechar el watch mode con HMR para re-ejecutar solo los tests afectados por un cambio.
- Generar informes de cobertura con v8 o istanbul sin plugins externos.
Cuándo usarlo
Si el proyecto ya usa Vite, Vitest es la opción natural. No necesitas configuración adicional, entiende el mismo vite.config.ts y el arranque es notablemente más rápido que Jest en proyectos medianos y grandes.
Puntos clave
- Compatible con la API de Jest:
describe,it,expect,vi.mock, etc. - Soporte de TypeScript y ESM de forma nativa, sin transformadores.
- Watch mode inteligente que solo re-ejecuta tests relacionados con los archivos cambiados.
- Integración con c8/v8 para cobertura de código.
Ten en cuenta
Si el proyecto usa Jest y no usa Vite, la migración puede no merecer el esfuerzo. Vitest brilla especialmente cuando ya tienes Vite en el stack.