Por qué Vitest
NOTA
Esta guía asume que ya estás familiarizado con Vite. Para profundizar, te recomendamos leer la Guía Por qué Vite y ver "Herramientas frontend de próxima generación con ViteJS" (video), una transmisión donde Evan You explica los conceptos principales.
La necesidad de un ejecutor de pruebas nativo de Vite
El soporte integrado de Vite para patrones web comunes, características como las importaciones glob
y las primitivas SSR, junto con su amplio ecosistema de plugins e integraciones, están impulsando un entorno vibrante. Su enfoque en el desarrollo y la construcción es fundamental para su éxito. Para la generación de documentación, ya existen varias alternativas basadas en SSG impulsadas por Vite. Sin embargo, el panorama de las pruebas unitarias en Vite no ha sido tan claro. Las opciones existentes, como Jest, fueron creadas en un contexto diferente, lo que genera una duplicidad significativa entre Jest y Vite y obliga a los usuarios a configurar dos flujos de trabajo distintos.
Utilizar el servidor de desarrollo de Vite para transformar tus archivos durante las pruebas permite crear un ejecutor simple que no necesita gestionar la complejidad de la transformación de archivos fuente. En su lugar, puede centrarse exclusivamente en proporcionar la mejor experiencia de desarrollo (DX) durante las pruebas. Un ejecutor de pruebas que aprovecha la misma configuración de tu aplicación (a través de vite.config.js
), compartiendo una cadena de procesamiento de transformación común para desarrollo, construcción y pruebas, y que es extensible con la misma API de plugins que permite a los desarrolladores y mantenedores de herramientas ofrecer una integración de primera clase con Vite. Una herramienta diseñada desde cero pensando en Vite, que aprovecha sus mejoras en DX, como la recarga instantánea de módulos (HMR). Esto es Vitest, un framework de pruebas de próxima generación impulsado por Vite.
Dada la adopción masiva de Jest, Vitest ofrece una API compatible que permite utilizarlo como un reemplazo directo en la mayoría de los proyectos. También incluye las características más comunes necesarias para configurar tus pruebas unitarias (mocking, snapshots, cobertura de código). Vitest prioriza el rendimiento y utiliza Worker threads para ejecutar la mayor cantidad posible de pruebas en paralelo. En algunos proyectos, las pruebas se han ejecutado un orden de magnitud más rápido. El modo de observación (watch mode) está habilitado por defecto, lo que se alinea con la filosofía de Vite de priorizar la experiencia de desarrollo. Incluso con todas estas mejoras en DX, Vitest se mantiene ligero al seleccionar cuidadosamente sus dependencias (o al integrar directamente las piezas necesarias).
Vitest aspira a posicionarse como el ejecutor de pruebas preferido para proyectos Vite, y como una alternativa sólida incluso para proyectos que no utilizan Vite.
Sigue leyendo en la Guía de inicio
¿En qué se diferencia Vitest de X?
Puedes consultar la sección Comparaciones para obtener más detalles sobre cómo Vitest difiere de otras herramientas similares.