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.js')
o import index from './index.js
), 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 | |
---|---|
-r, --root <path> | Ruta raíz |
-c, --config <path> | Ruta al archivo de configuración |
-u, --update | Actualizar instantánea/snapshot |
-w, --watch | Habilitar el modo de observación (watch) |
-t, --testNamePattern <pattern> | Ejecutar pruebas con nombres completos que coincidan con el patrón de expresión regular especificado |
--dir <path> | Directorio base para buscar los archivos de prueba |
--ui | Habilitar la interfaz de usuario (UI) |
--open | Abrir la UI automáticamente (predeterminado: !process.env.CI ) |
--api.port [port] | Especificar el puerto del servidor. Tenga en cuenta que si el puerto ya está en uso, Vite intentará automáticamente el siguiente puerto disponible, por lo que este puede no ser el puerto real en el que el servidor termina escuchando. Si es verdadero, se establecerá en 51204 |
--api.host [host] | Especificar en qué direcciones IP debe escuchar el servidor. Establezca esto en 0.0.0.0 o true para escuchar en todas las direcciones, incluidas las direcciones LAN y públicas. |
--api.strictPort | Se establece en verdadero para salir si el puerto ya está en uso, en lugar de intentar automáticamente el siguiente puerto disponible. |
--silent | Salida silenciosa de la consola de las pruebas |
--hideSkippedTests | Ocultar los registros de las pruebas omitidas |
--reporter <name> | Especificar los reporteros |
--outputFile <filename/-s> | Escribir los resultados de las pruebas en un archivo cuando también se especifica el reportero compatible, utilizar la notación de puntos de cac para salidas individuales de múltiples reporteros (ejemplo: --outputFile.tap=./tap.txt) |
--coverage.all | Si se deben incluir todos los archivos, incluidos los que no se han probado, en el informe |
--coverage.provider <name> | Seleccione la herramienta para la recopilación de cobertura, los valores disponibles son: "v8", "istanbul" y "custom" |
--coverage.enabled | Habilita la colección de cobertura. Se puede anular utilizando la opción de CLI --coverage (predeterminado: false ) |
--coverage.include <pattern> | Archivos incluidos en la cobertura como patrones glob. Se puede especificar más de una vez cuando se utilizan múltiples patrones (predeterminado: ** ) |
--coverage.exclude <pattern> | Archivos que se excluirán de la cobertura. Se puede especificar más de una vez cuando se utilizan múltiples extensiones (predeterminado: Visitar coverage.exclude ) |
--coverage.extension <extension> | Extensión que se incluirá en la cobertura. Se puede especificar más de una vez cuando se utilizan múltiples extensiones (predeterminado: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"] ) |
--coverage.clean | Limpiar los resultados de la cobertura antes de ejecutar las pruebas (predeterminado: true) |
--coverage.cleanOnRerun | Limpiar el informe de cobertura al volver a ejecutar la observación (predeterminado: true) |
--coverage.reportsDirectory <path> | Directorio para escribir el informe de cobertura (predeterminado: ./coverage) |
--coverage.reporter <name> | Reporteros de cobertura para usar. Visitar coverage.reporter para más información (predeterminado: ["text", "html", "clover", "json"] ) |
--coverage.reportOnFailure | Generar informe de cobertura incluso cuando las pruebas fallan (predeterminado: false ) |
--coverage.allowExternal | Recopilar la cobertura de los archivos fuera de la raíz del proyecto (predeterminado: false ) |
--coverage.skipFull | No mostrar archivos con 100% de cobertura de sentencias, ramas y funciones (predeterminado: false ) |
--coverage.thresholds.100 | Atajo para establecer todos los umbrales de cobertura a 100 (predeterminado: false ) |
--coverage.thresholds.perFile | Comprobar los umbrales por archivo. Ver --coverage.thresholds.lines , --coverage.thresholds.functions , --coverage.thresholds.branches y --coverage.thresholds.statements para los umbrales reales (predeterminado: false ) |
--coverage.thresholds.autoUpdate | Actualizar los valores de umbral: "lines", "functions", "branches" y "statements" al archivo de configuración cuando la cobertura actual está por encima de los umbrales configurados (predeterminado: false ) |
--coverage.thresholds.lines <number> | Umbral para líneas. Visitar istanbuljs para más información. Esta opción no está disponible para proveedores personalizados |
--coverage.thresholds.functions <number> | Umbral para funciones. Visitar istanbuljs para más información. Esta opción no está disponible para proveedores personalizados |
--coverage.thresholds.branches <number> | Umbral para ramas. Visitar istanbuljs para más información. Esta opción no está disponible para proveedores personalizados |
--coverage.thresholds.statements <number> | Umbral para sentencias. Visitar istanbuljs para más información. Esta opción no está disponible para proveedores personalizados |
--coverage.ignoreClassMethods <name> | Array de nombres de métodos de clase a ignorar para la cobertura. Visitar istanbuljs para más información. Esta opción sólo está disponible para los proveedores istanbul (predeterminado: [] ) |
--coverage.processingConcurrency <number> | Límite de concurrencia utilizado al procesar los resultados de cobertura. (valor predeterminado mínimo entre 20 y el número de CPU) |
--coverage.customProviderModule <path> | Especifica el nombre del módulo o la ruta del módulo del proveedor de cobertura personalizado. Visita Proveedor de Cobertura Personalizado para más información. Esta opción solo está disponible para proveedores personalizados |
--coverage.watermarks.statements <watermarks> | Marcas de agua altas y bajas para sentencias en el formato de <high>,<low> |
--coverage.watermarks.lines <watermarks> | Marcas de agua altas y bajas para líneas en el formato de <high>,<low> |
--coverage.watermarks.branches <watermarks> | Marcas de agua altas y bajas para ramas en el formato de <high>,<low> |
--coverage.watermarks.functions <watermarks> | Marcas de agua altas y bajas para funciones en el formato de <high>,<low> |
--mode <name> | Anular/Override el modo Vite (predeterminado: test o benchmark ) |
--workspace <path> | Ruta a un archivo de configuración de espacio de trabajo |
--isolate | Ejecutar cada archivo de prueba de forma aislada. Para deshabilitar el aislamiento, utilizar --no-isolate (predeterminado: true ) |
--globals | Inyectar APIs globalmente |
--dom | Simular API del navegador con happy-dom |
--browser.enabled | Ejecutar pruebas en el navegador. Equivalente a --browser.enabled (predeterminado: false ) |
--browser.name <name> | Ejecutar todas las pruebas en un navegador específico. Algunos navegadores solo están disponibles para proveedores específicos (ver --browser.provider ). Visitar browser.name para más información |
--browser.headless | Ejecutar el navegador en modo sin cabeza (es decir, sin abrir la GUI (Interfaz Gráfica de Usuario)). Si está ejecutando Vitest en CI, se habilitará de forma predeterminada (predeterminado: process.env.CI ) |
--browser.api.port [port] | Especificar el puerto del servidor. Tenga en cuenta que si el puerto ya está en uso, Vite intentará automáticamente el siguiente puerto disponible, por lo que este puede no ser el puerto real en el que el servidor termina escuchando. Si es verdadero, se establecerá en 63315 |
--browser.api.host [host] | Especificar en qué direcciones IP debe escuchar el servidor. Establezca esto en 0.0.0.0 o true para escuchar en todas las direcciones, incluidas las direcciones LAN y públicas. |
--browser.api.strictPort | Se establece en verdadero para salir si el puerto ya está en uso, en lugar de intentar automáticamente el siguiente puerto disponible. |
--browser.provider <name> | Proveedor utilizado para ejecutar pruebas del navegador. Algunos navegadores solo están disponibles para proveedores específicos. Puede ser "webdriverio", "playwright" o la ruta a un proveedor personalizado. Visita browser.provider para más información (predeterminado: "webdriverio" ) |
--browser.providerOptions <options> | Opciones que se transmiten a un proveedor de navegador. Visita browser.providerOptions para más información |
--browser.slowHijackESM | Permite a Vitest usar su propia resolución de módulos en el navegador para habilitar APIs como vi.mock y vi.spyOn. Visita browser.slowHijackESM para más información (predeterminado: false ) |
--browser.isolate | Ejecutar cada archivo de prueba del navegador de forma aislada. Para deshabilitar el aislamiento, utilice --browser.isolate=false (predeterminado: true ) |
--browser.fileParallelism | Indica si todos los archivos de prueba deben ejecutarse en paralelo. Utilice --browser.file-parallelism=false para desactivar (predeterminado: igual que --file-parallelism ) |
--pool <pool> | Especificar pool, si no se ejecuta en el navegador (predeterminado: threads ) |
--poolOptions.threads.isolate | Aísla las pruebas en el pool de hilos (predeterminado: true ) |
--poolOptions.threads.singleThread | Ejecutar pruebas dentro de un solo hilo (predeterminado: false ) |
--poolOptions.threads.maxThreads <workers> | Número máximo de hilos para ejecutar pruebas |
--poolOptions.threads.minThreads <workers> | Número mínimo de hilos para ejecutar pruebas |
--poolOptions.threads.useAtomics | Usar Atomics para sincronizar hilos. Esto puede mejorar el rendimiento en algunos casos, pero podría causar un error de segmentación en versiones antiguas de Node (predeterminado: false ) |
--poolOptions.vmThreads.isolate | Aísla las pruebas en el pool de hilos vm (predeterminado: true ) |
--poolOptions.vmThreads.singleThread | Ejecutar pruebas dentro de un solo hilo vm (predeterminado: false ) |
--poolOptions.vmThreads.maxThreads <workers> | Número máximo de hilos vm para ejecutar pruebas |
--poolOptions.vmThreads.minThreads <workers> | Número mínimo de hilos vm para ejecutar pruebas |
--poolOptions.vmThreads.useAtomics | Usar Atomics para sincronizar hilos. Esto puede mejorar el rendimiento en algunos casos, pero podría causar un error de segmentación en versiones antiguas de Node (predeterminado: false ) |
--poolOptions.vmThreads.memoryLimit <limit> | Límite de memoria para el pool de hilos vm. Si ves fugas de memoria, intenta modificar este valor. |
--poolOptions.forks.isolate | Aísla las pruebas en el pool de forks (predeterminado: true ) |
--poolOptions.forks.singleFork | Ejecutar pruebas dentro de un solo child_process (predeterminado: false ) |
--poolOptions.forks.maxForks <workers> | Número máximo de procesos para ejecutar pruebas |
--poolOptions.forks.minForks <workers> | Número mínimo de procesos para ejecutar pruebas |
--poolOptions.vmForks.isolate | Aísla las pruebas en el pool de forks vm (predeterminado: true ) |
--poolOptions.vmForks.singleFork | Ejecutar pruebas dentro de un solo child_process vm (predeterminado: false ) |
--poolOptions.vmForks.maxForks <workers> | Número máximo de procesos vm para ejecutar pruebas |
--poolOptions.vmForks.minForks <workers> | Número mínimo de procesos vm para ejecutar pruebas |
--poolOptions.vmForks.memoryLimit <limit> | Límite de memoria para el pool de forks vm. Si ves fugas de memoria, intenta modificar este valor. |
--fileParallelism | Indica si todos los archivos de prueba deben ejecutarse en paralelo. Utilice --no-file-parallelism para desactivar (predeterminado: true ) |
--maxWorkers <workers> | Número máximo de workers para ejecutar las pruebas |
--minWorkers <workers> | Número mínimo de workers para ejecutar las pruebas |
--environment <name> | Especificar el entorno del runner, si no se ejecuta en el navegador (predeterminado: node ) |
--passWithNoTests | Pasar cuando no se encuentran pruebas |
--logHeapUsage | Mostrar el tamaño del heap para cada prueba al ejecutar en node |
--allowOnly | Permitir pruebas y suites que estén marcadas como only (predeterminado: !process.env.CI ) |
--dangerouslyIgnoreUnhandledErrors | Ignorar cualquier error no manejado que ocurra |
--shard <shards> | Fragmento de conjunto de pruebas para ejecutar en un formato de <index>/<count> |
--changed [since] | Ejecutar pruebas que se ven afectadas por los archivos modificados (predeterminado: false ) |
--sequence.shuffle.files | Ejecutar archivos en un orden aleatorio. Las pruebas de larga duración no comenzarán antes si habilita esta opción. (predeterminado: false ) |
--sequence.shuffle.tests | Ejecutar pruebas en un orden aleatorio (predeterminado: false ) |
--sequence.concurrent | Hacer que las pruebas se ejecuten en paralelo (predeterminado: false ) |
--sequence.seed <seed> | Establecer la semilla de aleatorización. Esta opción no tendrá ningún efecto si --sequence.shuffle es falso. Visita la página "Random Seed" para más información |
--sequence.hooks <order> | Cambia el orden en que se ejecutan los hooks. Los valores aceptados son: "stack", "list" y "parallel". Visita sequence.hooks para más información (predeterminado: "parallel" ) |
--sequence.setupFiles <order> | Cambia el orden en que se ejecutan los archivos de configuración. Los valores aceptados son: "list" y "parallel". Si se establece en "list", ejecutará los archivos de configuración en el orden en que se definieron. Si se establece en "parallel", ejecutará los archivos de configuración en paralelo (predeterminado: "parallel" ) |
--inspect [[host:]port] | Habilitar el inspector de Node.js (predeterminado: 127.0.0.1:9229 ) |
--inspectBrk [[host:]port] | Habilitar el inspector de Node.js e interrumpir antes de que comience la prueba |
--testTimeout <timeout> | Tiempo de espera predeterminado de una prueba en milisegundos (predeterminado: 5000 ) |
--hookTimeout <timeout> | Tiempo de espera predeterminado del hook en milisegundos (predeterminado: 10000 ) |
--bail <number> | Detener la ejecución de la prueba cuando haya fallado el número dado de pruebas (predeterminado: 0 ) |
--retry <times> | Reintentar la prueba un número específico de veces si falla (predeterminado: 0 ) |
--diff <path> | Ruta a una configuración de diff que se utilizará para generar la interfaz de diff |
--exclude <glob> | Globs de archivo adicionales para excluir de la prueba |
--expandSnapshotDiff | Mostrar diff completo cuando falla la instantánea |
--disableConsoleIntercept | Deshabilitar la interceptación automática del registro de la consola (predeterminado: false ) |
--typecheck.enabled | Habilitar la verificación de tipos junto con las pruebas (predeterminado: false ) |
--typecheck.only | Ejecutar solo pruebas de verificación de tipos. Esto habilita automáticamente la verificación de tipos (predeterminado: false ) |
--typecheck.checker <name> | Especificar el verificador de tipos a utilizar. Los valores disponibles son: "tsc" y "vue-tsc" y la ruta a un ejecutable (predeterminado: "tsc" ) |
--typecheck.allowJs | Permitir que los archivos JavaScript se verifiquen por tipo. De forma predeterminada, toma el valor de tsconfig.json |
--typecheck.ignoreSourceErrors | Ignorar los errores de tipo de los archivos fuente |
--typecheck.tsconfig <path> | Ruta a un archivo tsconfig personalizado |
--project <name> | El nombre del proyecto a ejecutar si utilizas la función de espacio de trabajo de Vitest. Esto se puede repetir para varios proyectos: --project=1 --project=2 . También puedes filtrar proyectos con comodines como --project=packages* |
--slowTestThreshold <threshold> | Umbral en milisegundos para que una prueba se considere lenta (predeterminado: 300 ) |
--teardownTimeout <timeout> | Tiempo de espera predeterminado de una función teardown en milisegundos (predeterminado: 10000 ) |
--maxConcurrency <number> | Número máximo de pruebas concurrentes en una suite (predeterminado: 5 ) |
--run | Deshabilitar el modo watchmode |
--segfaultRetry <times> | Reintenta la suite de tests si explota debido a un fallo de segmentación (predeterminado: true ) |
--no-color | Elimina los colores de la salida de la consola |
--clearScreen | Borra la pantalla del terminal cuando se vuelven a ejecutar las pruebas durante el modo de vigilancia (predeterminado: true ) |
--standalone | Inicia Vitest sin ejecutar pruebas. Los filtros de archivos se ignorarán, las pruebas solo se ejecutarán en el cambio (predeterminado: false ) |
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 pruebas en los cambios realizados en la última confirmación, puede usar
--changed HEAD~1
. También puede pasar el hash de confirmación (por ejemplo,--changed 09a9920
) o el nombre de la rama (por ejemplo,--changed origin/develop
).Cuando se utiliza con la cobertura de código, el informe contendrá solo los archivos relacionados con los cambios.
Si se combina con la opción de configuración
forceRerunTriggers
, se ejecutará toda la suite de pruebas si al menos uno de los archivos enumerados en la listaforceRerunTriggers
cambia. De forma predeterminada, los cambios en el archivo de configuración de Vitest y enpackage.json
siempre volverán a ejecutar toda la suite.
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).