Skip to content
Vitest 1
Main Navigation GuíaAPIConfiguraciónAvanzado
1.6.1
0.34.6

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Apariencia

Sidebar Navigation

Guía

Por qué Vitest

Empezando

Características

Área de Trabajo

Interfaz de Línea de Comandos

Filtrado de Pruebas

Informes

Cobertura

Capturas instantáneas

Mocking

Pruebas de Tipos

Interfaz de Usuario de Vitest

Modo Navegador

Pruebas en el código fuente

Contexto de prueba

Entorno de Pruebas

Extender Matchers

Integración con IDEs

Depuración

Comparaciones con otros Ejecutores de Pruebas

Guía de Migración

Errores frecuentes

Mejora del rendimiento

API

Referencia de la API de pruebas

Funciones Mock

Vi

expect

expectTypeOf

assert

assertType

Configuración

Administración del archivo de configuración de Vitest

Configuración de Vitest

En esta página

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:

bash
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.

bash
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.

js
// .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, --updateActualizar instantánea/snapshot
-w, --watchHabilitar 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
--uiHabilitar la interfaz de usuario (UI)
--openAbrir 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.strictPortSe establece en verdadero para salir si el puerto ya está en uso, en lugar de intentar automáticamente el siguiente puerto disponible.
--silentSalida silenciosa de la consola de las pruebas
--hideSkippedTestsOcultar 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.allSi 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.enabledHabilita 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.cleanLimpiar los resultados de la cobertura antes de ejecutar las pruebas (predeterminado: true)
--coverage.cleanOnRerunLimpiar 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.reportOnFailureGenerar informe de cobertura incluso cuando las pruebas fallan (predeterminado: false)
--coverage.allowExternalRecopilar la cobertura de los archivos fuera de la raíz del proyecto (predeterminado: false)
--coverage.skipFullNo mostrar archivos con 100% de cobertura de sentencias, ramas y funciones (predeterminado: false)
--coverage.thresholds.100Atajo para establecer todos los umbrales de cobertura a 100 (predeterminado: false)
--coverage.thresholds.perFileComprobar 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.autoUpdateActualizar 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
--isolateEjecutar cada archivo de prueba de forma aislada. Para deshabilitar el aislamiento, utilizar --no-isolate (predeterminado: true)
--globalsInyectar APIs globalmente
--domSimular API del navegador con happy-dom
--browser.enabledEjecutar 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.headlessEjecutar 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.strictPortSe 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.slowHijackESMPermite 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.isolateEjecutar cada archivo de prueba del navegador de forma aislada. Para deshabilitar el aislamiento, utilice --browser.isolate=false (predeterminado: true)
--browser.fileParallelismIndica 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.isolateAísla las pruebas en el pool de hilos (predeterminado: true)
--poolOptions.threads.singleThreadEjecutar 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.useAtomicsUsar 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.isolateAísla las pruebas en el pool de hilos vm (predeterminado: true)
--poolOptions.vmThreads.singleThreadEjecutar 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.useAtomicsUsar 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.isolateAísla las pruebas en el pool de forks (predeterminado: true)
--poolOptions.forks.singleForkEjecutar 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.isolateAísla las pruebas en el pool de forks vm (predeterminado: true)
--poolOptions.vmForks.singleForkEjecutar 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.
--fileParallelismIndica 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)
--passWithNoTestsPasar cuando no se encuentran pruebas
--logHeapUsageMostrar el tamaño del heap para cada prueba al ejecutar en node
--allowOnlyPermitir pruebas y suites que estén marcadas como only (predeterminado: !process.env.CI)
--dangerouslyIgnoreUnhandledErrorsIgnorar 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.filesEjecutar archivos en un orden aleatorio. Las pruebas de larga duración no comenzarán antes si habilita esta opción. (predeterminado: false)
--sequence.shuffle.testsEjecutar pruebas en un orden aleatorio (predeterminado: false)
--sequence.concurrentHacer 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
--expandSnapshotDiffMostrar diff completo cuando falla la instantánea
--disableConsoleInterceptDeshabilitar la interceptación automática del registro de la consola (predeterminado: false)
--typecheck.enabledHabilitar la verificación de tipos junto con las pruebas (predeterminado: false)
--typecheck.onlyEjecutar 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.allowJsPermitir que los archivos JavaScript se verifiquen por tipo. De forma predeterminada, toma el valor de tsconfig.json
--typecheck.ignoreSourceErrorsIgnorar 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)
--runDeshabilitar el modo watchmode
--segfaultRetry <times>Reintenta la suite de tests si explota debido a un fallo de segmentación (predeterminado: true)
--no-colorElimina los colores de la salida de la consola
--clearScreenBorra la pantalla del terminal cuando se vuelven a ejecutar las pruebas durante el modo de vigilancia (predeterminado: true)
--standaloneInicia 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 lista forceRerunTriggers cambia. De forma predeterminada, los cambios en el archivo de configuración de Vitest y en package.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:

    sh
    vitest 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).

Pager
AnteriorÁrea de Trabajo
SiguienteFiltrado de Pruebas

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/cli

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors