Skip to content
Vitest 2
Main Navigation GuíaAPIConfiguraciónModo NavegadorAvanzado
2.1.9
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

API de Node

Ejecutor de Pruebas (Test Runner)

Metadatos de la tarea

Extensión de los Reportadores

Pool personalizado

En esta página

API de Node ​

WARNING

Vitest ofrece una API experimental privada. Los cambios que introduzcan incompatibilidades podrían no seguir SemVer, por favor, fija la versión de Vitest al usarla.

startVitest ​

Puedes comenzar a ejecutar las pruebas de Vitest usando su API de Node:

js
import { startVitest } from 'vitest/node';

const vitest = await startVitest('test');

await vitest?.close();

La función startVitest devuelve una instancia de Vitest si las pruebas se pueden iniciar correctamente. Devuelve undefined si ocurre lo siguiente:

  • Vitest no encuentra el paquete vite (que normalmente se instala con Vitest).
  • Si la cobertura está habilitada y el modo de ejecución es "test", pero no se ha instalado el paquete de cobertura (@vitest/coverage-v8 o @vitest/coverage-istanbul).
  • Si el paquete de entorno no está instalado (jsdom/happy-dom/@edge-runtime/vm).

Si se devuelve undefined o las pruebas fallan durante la ejecución, Vitest establece process.exitCode a 1.

Si el modo de observación no está habilitado, Vitest invocará el método close.

Si el modo de observación está habilitado y la terminal soporta TTY, Vitest registrará accesos directos de consola.

Puedes proporcionar una lista de filtros como segundo argumento. Vitest solo ejecutará las pruebas cuya ruta de archivo contenga al menos una de las cadenas proporcionadas.

Además, puedes usar el tercer argumento para pasar argumentos de la CLI, que sobrescribirán cualquier opción de configuración de prueba.

Alternativamente, puedes pasar la configuración completa de Vite como cuarto argumento, que tendrá prioridad sobre cualquier otra opción definida por el usuario.

Después de ejecutar las pruebas, puedes obtener los resultados a través de la API state.getFiles:

ts
const vitest = await startVitest('test');

console.log(vitest.state.getFiles()); // [{ type: 'file', ... }]

Desde Vitest 2.1, se recomienda usar la API de "Tareas Reportadas" junto con state.getFiles. En el futuro, Vitest devolverá esos objetos directamente:

ts
const vitest = await startVitest('test');

const [fileTask] = vitest.state.getFiles();
const testFile = vitest.state.getReportedEntity(fileTask);

createVitest ​

Puedes crear una instancia de Vitest usando la función createVitest. Devuelve la misma instancia de Vitest que startVitest, aunque no inicia las pruebas ni valida los paquetes instalados.

js
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});

parseCLI ​

Puedes utilizar este método para analizar los argumentos de la CLI. Acepta una cadena (donde los argumentos están separados por un solo espacio) o un array de cadenas con argumentos de la CLI en el mismo formato que utiliza la CLI de Vitest. Devuelve un filtro y options que puedes pasar posteriormente a los métodos createVitest o startVitest.

ts
import { parseCLI } from 'vitest/node';

parseCLI('vitest ./files.ts --coverage --browser=chrome');

Vitest ​

La instancia de Vitest requiere el modo actual. Puede ser:

  • test cuando se ejecutan pruebas en tiempo de ejecución.
  • benchmark cuando se ejecutan benchmarks.

mode ​

test ​

El modo de prueba solo invocará las funciones dentro de test o it, y lanzará un error cuando se encuentre bench. Este modo usa las opciones include y exclude en la configuración para encontrar los archivos de prueba.

benchmark ​

El modo de pruebas de rendimiento llama a las funciones bench y lanza un error si encuentra test o it. Este modo utiliza las opciones benchmark.include y benchmark.exclude en la configuración para encontrar los archivos de pruebas de rendimiento.

start ​

Puedes comenzar a ejecutar pruebas o benchmarks con el método start. Puedes pasar un array de cadenas para filtrar los archivos de prueba.

provide ​

Vitest expone el método provide, que es una abreviatura de vitest.getCoreWorkspaceProject().provide. Con este método, puedes transferir valores desde el hilo principal a las pruebas. Todos los valores se comprueban con structuredClone antes de almacenarse, pero los valores en sí mismos no se clonan.

Para obtener los valores en la prueba, necesitas importar el método inject desde el punto de entrada de vitest:

ts
import { inject } from 'vitest';
const port = inject('wsPort'); // 3000

Para una mayor seguridad de tipos, te recomendamos ampliar el tipo de ProvidedContext:

ts
import { createVitest } from 'vitest/node';

const vitest = await createVitest('test', {
  watch: false,
});
vitest.provide('wsPort', 3000);

declare module 'vitest' {
  export interface ProvidedContext {
    wsPort: number;
  }
}

WARNING

Técnicamente, provide es un método de WorkspaceProject, por lo que está limitado a ese proyecto específico. Sin embargo, todos los proyectos heredan los valores del proyecto central, lo que convierte a vitest.provide en una forma universal de pasar valores a las pruebas.

TIP

Este método también está disponible para los archivos de configuración global en los casos en los que no quieras usar la API pública.

js
export default function setup({ provide }) {
  provide('wsPort', 3000);
}
Pager
SiguienteEjecutor de Pruebas (Test Runner)

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors

https://v2.vitest.dev/advanced/api

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors