Teszt szűrés
Szűrés, időtúllépések, párhuzamosan futó tesztcsomagok és tesztek kezelése.
CLI
A parancssori felület (CLI) segítségével név alapján szűrheti a tesztfájlokat:
$ vitest basic
Ez a parancs csak azokat a tesztfájlokat futtatja, amelyek nevében szerepel a basic
szó, például:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Használható a -t, --testNamePattern <pattern>
opció is a tesztek teljes név szerinti szűrésére. Ez akkor hasznos, ha a fájlban definiált név alapján szeretne szűrni, nem pedig a fájlnév alapján.
A Vitest 3-tól kezdve a teszteket fájlnév és sorszám alapján is megadhatja:
$ vitest basic/foo.test.ts:10
WARNING
Fontos megjegyezni, hogy a Vitest a teljes fájlnév megadását igényli ehhez a funkcióhoz. Ez lehet relatív a jelenlegi munkakönyvtárhoz képest, vagy abszolút fájlútvonal.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Jelenleg a Vitest nem támogatja a tartományok megadását:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Időtúllépés megadása
Opcionálisan megadhat egy időtúllépést milliszekundumban, harmadik argumentumként a tesztekhez. Az alapértelmezett érték 5 másodperc.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
A hookok is fogadhatnak időtúllépést, amelynek alapértelmezett értéke szintén 5 másodperc.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Tesztcsomagok és tesztek kihagyása
A .skip
módosító használatával elkerülhető bizonyos tesztcsomagok vagy tesztek futtatása.
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// A tesztcsomag kimarad, így hiba nem lép fel.
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// A teszt kihagyva, nincs hiba.
assert.equal(Math.sqrt(4), 3);
});
});
Futtatandó tesztcsomagok és tesztek kiválasztása
A .only
használatával csak bizonyos tesztcsomagok vagy tesztek futtathatók.
import { assert, describe, it } from 'vitest';
// Csak ez a tesztcsomag (és a többi, only-val jelölt) fut le.
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// A teszt kihagyva, mivel a tesztek Only módban futnak.
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Csak ez a teszt (és a többi, only-val jelölt) fut le.
assert.equal(Math.sqrt(4), 2);
});
});
Nem implementált tesztcsomagok és tesztek
A .todo
használatával jelölhetők a még implementálandó tesztcsomagok és tesztek.
import { describe, it } from 'vitest';
// Egy bejegyzés fog megjelenni a jelentésben ehhez a tesztcsomaghoz.
describe.todo('unimplemented suite');
// Egy bejegyzés fog megjelenni a jelentésben ehhez a teszthez.
describe('suite', () => {
it.todo('unimplemented test');
});