Filtro dei test
Filtraggio, timeout e concorrenza per suite e test
CLI
Puoi usare la CLI per filtrare i file di test per nome:
$ 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
È inoltre possibile utilizzare l'opzione -t, --testNamePattern <pattern>
per filtrare i test per nome completo. Questo può essere utile quando si desidera filtrare per il nome definito all'interno di un file anziché per il nome del file stesso.
Impostazione di un Timeout
Puoi specificare un timeout in millisecondi come terzo argomento dei test. Il valore predefinito è di 5 secondi.
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.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Ignorare Suite e Test
Usa .skip
per ignorare determinate suite o test.
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.
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.
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');
});