Filtrování testů
Filtrování, časové limity, paralelní spouštění sad a testů
CLI
Pomocí CLI můžete filtrovat testovací soubory podle názvu:
$ vitest basic
Spustí se pouze testovací soubory, které obsahují basic
, například:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Můžete také použít volbu -t, --testNamePattern <pattern>
k filtrování testů podle jejich plného názvu. To může být užitečné, když chcete filtrovat podle názvu definovaného uvnitř souboru, spíše než podle názvu souboru samotného.
Od Vitest 3 můžete také specifikovat test podle názvu souboru a čísla řádku:
$ vitest basic/foo.test.ts:10
WARNING
Pozor: Vitest pro tuto funkci vyžaduje plný název souboru. Může být relativní k aktuálnímu pracovnímu adresáři nebo absolutní cesta k souboru.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Momentálně Vitest také nepodporuje rozsahy:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Určení časového limitu
Můžete volitelně předat časový limit v milisekundách jako třetí argument testům. Výchozí hodnota je 5 sekund.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Hooky mohou mít také časový limit, s výchozím limitem rovněž 5 sekund.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Přeskakování sad a testů
Použijte .skip
pro přeskočení určitých sad nebo testů:
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Sada přeskočena, bez chyby
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Test přeskočen, bez chyby
assert.equal(Math.sqrt(4), 3);
});
});
Výběr sad a testů ke spuštění
Použijte .only
pro spuštění pouze určitých sad nebo testů:
import { assert, describe, it } from 'vitest';
// Spustí se pouze tato sada (a další označené `only`)
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Test přeskočen, protože testy běží v režimu `only`
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Spustí se pouze tento test (a další označené `only`)
assert.equal(Math.sqrt(4), 2);
});
});
Neimplementované sady a testy
Použijte .todo
k označení sad a testů, které mají být implementovány:
import { describe, it } from 'vitest';
// V reportu se zobrazí položka pro tuto sadu
describe.todo('unimplemented suite');
// V reportu se zobrazí položka pro tento test
describe('suite', () => {
it.todo('unimplemented test');
});