Filtro dei test
Filtraggio, timeout e concorrenza per suite e test
CLI
Puoi usare la CLI per filtrare i file di test per nome:
bash
$ vitest basic
Verranno eseguiti solo i file di test che contengono basic
, ad esempio:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Impostazione di un Timeout
Puoi specificare un timeout in millisecondi come terzo argomento dei test. Il valore predefinito è di 5 secondi.
ts
import { test } from 'vitest';
test('nome del test', async () => {
/* ... */
}, 1000);
Anche gli hook possono avere un timeout, con lo stesso valore predefinito di 5 secondi.
ts
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Ignorare Suite e Test
Usa .skip
per ignorare determinate suite o test.
ts
import { assert, describe, it } from 'vitest';
describe.skip('suite', () => {
it('test', () => {
// Suite ignorata, nessun errore verrà sollevato
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('test ignorato', () => {
// Test ignorato, nessun errore verrà sollevato
assert.equal(Math.sqrt(4), 3);
});
});
Eseguire Solo Suite e Test Specifici
Usa .only
per eseguire solo determinate suite o test.
ts
import { assert, describe, it } from 'vitest';
// Verrà eseguita solo questa suite (e altre marcate con .only)
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe("un'altra suite", () => {
it('test ignorato', () => {
// Test ignorato perché l'esecuzione è in modalità .only
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Solo questo test (e altri contrassegnati con .only) verranno eseguiti
assert.equal(Math.sqrt(4), 2);
});
});
Suite e Test Non Implementati (Todo)
Usa .todo
per contrassegnare suite e test non ancora implementati.
ts
import { describe, it } from 'vitest';
// Nel report verrà visualizzata una voce "todo" per questa suite
describe.todo('suite non ancora implementata');
// Nel report verrà visualizzata una voce "todo" per questo test
describe('suite', () => {
it.todo('test non ancora implementato');
});