テストのフィルタリング
スイートとテストのフィルタリング、タイムアウト設定、スイートとテストの並列実行について説明します。
CLI
CLI を使用すると、ファイル名でテストをフィルタリングできます。
bash
$ vitest basic
この例では、ファイル名にbasic
を含むテストファイルのみが実行されます。以下に例を示します。
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
タイムアウトの設定
テストのタイムアウトは、テスト関数の第 3 引数にミリ秒単位で指定できます。デフォルト値は 5 秒です。
ts
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
beforeAll
などのフックでもタイムアウトを設定できます。デフォルト値はテストと同様に 5 秒です。
ts
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
スイートとテストのスキップ
特定のスイートまたはテストの実行をスキップするには、.skip
を使用します。
ts
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// スイートがスキップされるため、エラーは発生しません
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// テストがスキップされるため、エラーは発生しません
assert.equal(Math.sqrt(4), 3);
});
});
特定のスイートとテストの実行
特定のスイートやテストのみを実行するには、.only
を使用します。
ts
import { assert, describe, it } from 'vitest';
// このスイート(および`.only`が指定された他のスイート)のみが実行されます
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// 他のテストに`.only`が指定されているため、このテストはスキップされます
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// このテスト(および`.only`が指定された他のテスト)のみが実行されます
assert.equal(Math.sqrt(4), 2);
});
});
未実装のスイートとテスト
将来実装する予定のスイートやテストのプレースホルダーとして、.todo
を使用します。.todo
でマークされたスイートとテストは、レポートに未実装項目として表示されます。
ts
import { describe, it } from 'vitest';
// このスイートは未実装としてレポートに表示されます
describe.todo('unimplemented suite');
// このテストは未実装としてレポートに表示されます
describe('suite', () => {
it.todo('unimplemented test');
});