Interfaz de Línea de Comandos
Comandos
vitest
Inicia Vitest en el directorio actual. Entrará automáticamente en modo de observación en el entorno de desarrollo y en modo de ejecución en CI.
Puedes pasar un argumento adicional como filtro para los archivos de prueba que se ejecutarán. Por ejemplo:
vitest foobar
Ejecutará solo los archivos de prueba que contengan foobar
en su ruta. Este filtro solo comprueba la inclusión y no admite expresiones regulares o patrones glob (a menos que tu terminal los procese antes de que Vitest reciba el filtro).
vitest run
Realiza una única ejecución sin el modo de observación.
vitest watch
Ejecuta todos los conjuntos de pruebas, pero observa los cambios y vuelve a ejecutar las pruebas cuando estos se produzcan. Es equivalente a llamar a vitest
sin argumentos. Se cambiará a vitest run
en CI.
vitest dev
Es un alias de vitest watch
.
vitest related
Ejecuta solo las pruebas que se ven afectadas por una lista de archivos fuente. Funciona con importaciones estáticas (por ejemplo, import('./index.ts')
o import index from './index.ts
), pero no con las dinámicas (por ejemplo, import(filepath)
). Todos los archivos deben ser relativos a la carpeta raíz.
Útil para ejecutar con lint-staged
o con tu configuración de CI.
vitest related /src/index.ts /src/hello-world.js
TIP
Recuerda que Vitest se ejecuta en modo de seguimiento por defecto. Si estás utilizando herramientas como lint-staged
, también debes pasar la opción --run
para que el comando pueda finalizar correctamente.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
Ejecuta solo las pruebas de benchmark, que comparan el rendimiento.
Opciones
Opciones | |
---|---|
-v, --version | Muestra el número de versión. |
-r, --root <path> | Define el directorio raíz del proyecto. |
-c, --config <path> | Ruta al archivo de configuración. |
-u, --update | Actualiza las instantáneas (snapshots). |
-w, --watch | Activa el modo de observación inteligente e instantáneo. |
-t, --testNamePattern <pattern> | Ejecuta las pruebas cuyos nombres completos coincidan con el patrón especificado. |
--dir <path> | Directorio base para buscar los archivos de prueba. |
--ui | Activa la interfaz de usuario (UI). |
--open | Abre la interfaz de usuario automáticamente si está habilitada (por defecto: true ). |
--api [api] | Expone la API. Opciones disponibles: --api.port <puerto> , --api.host [host] y --api.strictPort . |
--threads | Habilita el uso de hilos (por defecto: true ). |
--single-thread | Ejecuta las pruebas en un solo hilo. Requiere --threads (por defecto: false ). |
--experimental-vm-threads | Ejecuta las pruebas en un grupo de trabajadores (worker pool) utilizando el aislamiento de VM (por defecto: false ). |
--experimental-vm-worker-memory-limit | Establece el límite máximo de memoria permitido para un trabajador. Cuando se alcanza, se creará un nuevo trabajador en su lugar. |
--silent | Suprime la salida de consola de las pruebas. |
--isolate | Aísla el entorno para cada archivo de prueba (por defecto: true ). |
--reporter <name> | Selecciona el reportero: default , verbose , dot , junit , json , o una ruta a un reportero personalizado. |
--outputFile <filename/-s> | Escribe los resultados de las pruebas en un archivo cuando también se especifica la opción --reporter=json o --reporter=junit . Mediante la notación de puntos de cac puedes especificar salidas individuales para varios reporteros. |
--coverage | Habilita el informe de cobertura. |
--run | Desactiva el modo de observación. |
--mode | Anula el modo de Vite (por defecto: test ). |
--mode <name> | Anula el modo de Vite (por defecto: test ). |
--globals | Inyecta APIs globalmente. |
--dom | Emula las APIs del navegador usando happy-dom. |
--browser [options] | Ejecuta las pruebas en el navegador (por defecto: false ). |
--environment <env> | Entorno del ejecutor (Runner environment) (por defecto: node ). |
--passWithNoTests | Marca como exitoso si no se encuentran pruebas. |
--logHeapUsage | Muestra el tamaño del heap para cada prueba. |
--allowOnly | Permite la ejecución de pruebas y conjuntos marcados como only (por defecto: false en CI, true en caso contrario). |
--dangerouslyIgnoreUnhandledErrors | Ignora cualquier error no manejado que ocurra. |
--changed [since] | Ejecuta las pruebas que se ven afectadas por los archivos modificados (por defecto: false). Consulta docs. |
--shard <shard> | Ejecuta las pruebas en un fragmento (shard) especificado. |
--sequence | Define el orden en que se ejecutarán las pruebas. Utiliza la notación de puntos de cac para especificar las opciones (por ejemplo, utiliza --sequence.shuffle para ejecutar las pruebas en orden aleatorio o --sequence.shuffle --sequence.seed SEED_ID para ejecutar un orden específico). |
--no-color | Elimina los colores de la salida de la consola. |
--inspect | Habilita el inspector de Node.js. |
--inspect-brk | Habilita el inspector de Node.js con pausa (break). |
--bail <number> | Detiene la ejecución de la prueba cuando el número dado de pruebas ha fallado. |
--retry <times> | Reintenta la prueba un número específico de veces en caso de fallo. |
-h, --help | Muestra las opciones de la CLI disponibles. |
TIP
Vitest admite tanto camel case como kebab case para los argumentos de la CLI. Por ejemplo, --passWithNoTests
y --pass-with-no-tests
funcionarán (--no-color
y --inspect-brk
son las excepciones).
Vitest también admite diferentes formas de especificar el valor: --reporter dot
y --reporter=dot
son válidas.
Si la opción admite una matriz de valores, debes pasar la opción varias veces:
vitest --reporter=dot --reporter=default
Las opciones booleanas se pueden negar con el prefijo no-
. Especificar el valor como false
también funciona:
vitest --no-api
vitest --api=false
changed
Tipo:
boolean | string
Por defecto: false
Ejecuta las pruebas solo en los archivos modificados. Si no se proporciona ningún valor, ejecutará las pruebas contra los cambios no confirmados (incluidos los cambios preparados y no preparados).
Para ejecutar las pruebas contra los cambios realizados en la última confirmación, puedes utilizar
--changed HEAD~1
. También puedes pasar el hash de la confirmación o el nombre de la rama.Si se combina con la opción de configuración
forceRerunTriggers
, se ejecutará todo el conjunto de pruebas si se encuentra una coincidencia en los archivos modificados.
shard
Tipo:
string
Por defecto: deshabilitado
Fragmento (shard) del conjunto de pruebas que se va a ejecutar, en el formato
<índice>
/<cantidad>
, donde:cantidad
es un entero positivo, que representa el número total de fragmentos en los que se divide el conjunto de pruebas.índice
es un entero positivo, que representa el índice del fragmento que se va a ejecutar.
Este comando dividirá todas las pruebas en
cantidad
partes iguales y ejecutará solo las que correspondan al fragmentoíndice
. Por ejemplo, para dividir tu conjunto de pruebas en tres partes, utiliza lo siguiente:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
No se puede usar esta opción con --watch
activado (activado en el entorno de desarrollo por defecto).