Filtro dei Test
Filtro, timeout e gestione della concorrenza per suite e test.
CLI
È possibile utilizzare 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 in base al loro nome completo. Questo è utile quando si desidera filtrare in base al nome definito all'interno di un file di test, piuttosto che in base al nome del file stesso.
A partire da Vitest 3, è anche possibile specificare un test utilizzando il nome del file e il numero di riga:
$ vitest basic/foo.test.ts:10
WARNING
Si noti che Vitest richiede il percorso completo del file affinché questa funzionalità sia operativa. Può essere un percorso relativo alla directory di lavoro corrente o un percorso di file assoluto.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Al momento Vitest non supporta gli intervalli di righe:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Specificare un Timeout
È possibile passare facoltativamente un timeout in millisecondi come terzo argomento ai test. Il valore predefinito è 5 secondi.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Anche gli hook possono ricevere un timeout, con lo stesso timeout predefinito di 5 secondi.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Saltare Suite e Test
Utilizzare .skip
per saltare determinate suite o test.
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Suite saltata, nessun errore
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Test saltato, nessun errore
assert.equal(Math.sqrt(4), 3);
});
});
Selezionare Suite e Test da Eseguire
Utilizzare .only
per eseguire solo determinate suite o test.
import { assert, describe, it } from 'vitest';
// Verranno eseguite solo questa suite (e le altre contrassegnate con `only`)
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Test saltato, poiché i test sono in esecuzione in modalità `Only`
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Vengono eseguiti solo questo test (e gli altri contrassegnati con `only`)
assert.equal(Math.sqrt(4), 2);
});
});
Suite e Test Non Implementati
Utilizzare .todo
per creare stub di suite e test che devono ancora essere implementati.
import { describe, it } from 'vitest';
// Nel report verrà mostrata una voce per questa suite
describe.todo('unimplemented suite');
// Nel report verrà mostrata una voce per questo test
describe('suite', () => {
it.todo('unimplemented test');
});