Testfilter
Filtern, Timeouts, Nebenläufigkeit von Suiten und Tests
CLI
Du kannst die CLI verwenden, um Testdateien anhand ihres Namens zu filtern:
$ vitest basic
Dies führt nur Testdateien aus, deren Name basic
enthält, z.B.:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Sie können auch die Option -t, --testNamePattern <pattern>
verwenden, um Tests nach vollständigem Namen zu filtern. Dies kann hilfreich sein, wenn Sie nach dem Namen filtern möchten, der in einer Datei definiert ist, und nicht nach dem Dateinamen selbst.
Ein Timeout festlegen
Du kannst optional ein Timeout in Millisekunden als drittes Argument an Tests übergeben. Der Standardwert beträgt 5 Sekunden.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Auch Hooks können ein Timeout erhalten, wobei der Standardwert ebenfalls 5 Sekunden beträgt.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Suiten und Tests überspringen
Verwende .skip
, um bestimmte Suiten oder Tests zu überspringen.
import { assert, describe, it } from 'vitest';
describe.skip('übersprungene Test-Suite', () => {
it('test', () => {
// Test-Suite wurde übersprungen, daher wird kein Fehler ausgelöst
assert.equal(Math.sqrt(4), 3);
});
});
describe('Test-Suite', () => {
it.skip('übersprungener Test', () => {
// Test wurde übersprungen, daher wird kein Fehler ausgelöst
assert.equal(Math.sqrt(4), 3);
});
});
Auswählen der auszuführenden Suiten und Tests
Verwende .only
, um nur bestimmte Suiten oder Tests auszuführen.
import { assert, describe, it } from 'vitest';
// Nur diese Suite (und alle anderen, die mit only markiert sind) werden ausgeführt
describe.only('Test-Suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('weitere Suite', () => {
it('übersprungener Test', () => {
// Test übersprungen, da Tests im 'only'-Modus ausgeführt werden
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Nur dieser Test (und alle anderen, die mit only markiert sind) werden ausgeführt
assert.equal(Math.sqrt(4), 2);
});
});
Nicht implementierte Suites und Tests
Verwende .todo
, um Platzhalter für Suites und Tests zu erstellen, die noch implementiert werden müssen.
import { describe, it } from 'vitest';
// Diese Suite wird im Bericht als "TODO" aufgeführt
describe.todo('nicht implementierte Suite');
// Dieser Test wird im Bericht als "TODO" aufgeführt
describe('Test-Suite', () => {
it.todo('nicht implementierter Test');
});