Filtrando Testes
Filtragem, tempos limite, execução paralela em suítes e testes
CLI
Você pode usar a CLI para filtrar arquivos de teste por nome:
$ vitest basic
Isso executará apenas os arquivos de teste que contêm basic
, por exemplo:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Você também pode usar a opção -t, --testNamePattern <pattern>
para filtrar os testes pelo nome completo. Isso pode ser útil quando você deseja filtrar pelo nome definido dentro de um arquivo, em vez do próprio nome do arquivo.
Especificando um Tempo Limite
Opcionalmente, você pode definir um tempo limite em milissegundos para os testes, passando-o como terceiro argumento. O valor padrão é 5 segundos.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Hooks também podem ter um tempo limite, com o mesmo valor padrão de 5 segundos.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Ignorando Suítes e Testes
Use .skip
para impedir a execução de determinadas suítes ou testes.
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Suíte ignorada, não gerará erro
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Teste ignorado, não gerará erro
assert.equal(Math.sqrt(4), 3);
});
});
Selecionando Suítes e Testes para Execução
Use .only
para executar apenas determinadas suítes ou testes.
import { assert, describe, it } from 'vitest';
// Apenas esta suíte (e outras marcadas com only) serão executadas
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Teste ignorado, pois os testes estão sendo executados no modo Only.
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Apenas este teste (e outros marcados com only) serão executados
assert.equal(Math.sqrt(4), 2);
});
});
Suítes e Testes Não Implementados (Em Desenvolvimento)
Use .todo
para marcar suítes e testes como pendentes, indicando que ainda serão implementados.
import { describe, it } from 'vitest';
// Uma entrada será exibida no relatório para esta suíte
describe.todo('unimplemented suite');
// Uma entrada será exibida no relatório para este teste
describe('suite', () => {
it.todo('unimplemented test');
});