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
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');
});