Filtrado de Tests
Filtrado, tiempos de espera, concurrencia de suites y pruebas
CLI
Puedes usar la línea de comandos para filtrar archivos de prueba por nombre:
$ vitest basic
Esto solo ejecutará archivos de prueba que contengan basic
, por ejemplo:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
También puedes usar la opción -t, --testNamePattern <patrón>
para filtrar pruebas por su nombre completo. Esto puede ser útil cuando quieres filtrar por el nombre definido dentro de un archivo en lugar del nombre del archivo.
Desde Vitest 3, también puedes especificar la prueba por nombre de archivo y número de línea:
$ vitest basic/foo.test.ts:10
WARNING
Es importante tener en cuenta que Vitest requiere el nombre completo del archivo para que esta característica funcione. Puede ser relativo al directorio de trabajo actual o una ruta absoluta.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Actualmente, Vitest tampoco admite rangos:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Especificar un Tiempo de Espera
Opcionalmente, puedes pasar un tiempo de espera en milisegundos como tercer argumento en las pruebas. El valor por defecto es 5 segundos.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Los hooks
también pueden recibir un tiempo de espera, con el mismo valor por defecto de 5 segundos.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Omitir Suites y Pruebas
Usa .skip
para no ejecutar ciertas suites o pruebas.
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Suite omitida, sin errores
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Prueba omitida, sin errores
assert.equal(Math.sqrt(4), 3);
});
});
Seleccionar Suites y Pruebas para Ejecutar
Usa .only
para ejecutar únicamente ciertas suites o pruebas.
import { assert, describe, it } from 'vitest';
// Solo esta suite (y otras marcadas con .only) se ejecutan
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Prueba omitida, ya que las pruebas se están ejecutando en modo `only`
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Solo esta prueba (y otras marcadas con .only) se ejecutan
assert.equal(Math.sqrt(4), 2);
});
});
Suites y Pruebas No Implementadas
Usa .todo
para marcar suites y pruebas que deben implementarse.
import { describe, it } from 'vitest';
// Se mostrará un registro en el informe para esta suite
describe.todo('unimplemented suite');
// Se mostrará un registro en el informe para esta prueba
describe('suite', () => {
it.todo('unimplemented test');
});