Por qué Vitest
NOTA:
Esta guía asume que estás familiarizado con Vite. Una buena forma de empezar a aprender más es leer la Guía de Por qué Vite, y Herramientas frontend de nueva generación con ViteJS, una transmisión donde Evan You hizo una demostración explicando 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, y sus numerosos plugins e integraciones están impulsando un ecosistema vibrante. Su enfoque de desarrollo y compilación son clave para su éxito. Para la documentación, 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 se crearon en un contexto diferente. Existe una gran duplicación entre Jest y Vite, lo que obliga a los usuarios a configurar dos flujos de trabajo distintos.
Utilizar el servidor de desarrollo de Vite para transformar los archivos durante las pruebas permite crear un ejecutor simple. Este ejecutor no necesita encargarse de la complejidad de transformar los archivos fuente y puede centrarse en proporcionar la mejor Experiencia de Desarrollador (DX) durante las pruebas. Este ejecutor de pruebas utiliza la misma configuración de tu aplicación (a través de vite.config.js
) y comparte un flujo de trabajo de transformación común durante el desarrollo, la construcción y la fase de pruebas. Además, es extensible con la misma API de plugins, lo que permite tanto a los usuarios como a los mantenedores de las herramientas proporcionar una integración de primera clase con Vite. Es una herramienta construida desde el principio pensando en Vite, aprovechando sus mejoras en DX, como la Recarga de Módulo en Caliente (HMR) instantánea. Esto es Vitest, un framework de pruebas unitarias extremadamente rápido impulsado por Vite.
Dada la adopción masiva de Jest, Vitest proporciona una API compatible que te permite usarlo como un reemplazo directo en la mayoría de los proyectos. También incluye las características más comunes requeridas al configurar tus pruebas unitarias (mocking, snapshots, cobertura). Vitest se preocupa mucho por el rendimiento y utiliza hilos de trabajo para ejecutar la mayor cantidad posible de tareas en paralelo. En algunas migraciones, se ha observado que las pruebas se ejecutan un orden de magnitud más rápido que antes. El modo de observación está habilitado por defecto, lo que se alinea con el enfoque de Vite de priorizar una experiencia centrada en el desarrollo. Incluso con todas estas mejoras en DX, Vitest se mantiene ligero al elegir cuidadosamente sus dependencias (o incluyendo directamente los componentes necesarios).
Vitest busca posicionarse como el ejecutor de pruebas preferido para los proyectos de Vite, y como una alternativa sólida incluso para aquellos que no lo utilizan.
Continúa leyendo en la Guía de Introducción
¿En qué se diferencia Vitest de X?
Puedes consultar la sección de Comparaciones para obtener más detalles sobre cómo Vitest se diferencia de otras herramientas similares.