Skip to content
Vitest 3
Main Navigation ガイド & API設定ブラウザモード高度なAPI
3.2.0
2.1.9
1.6.1
0.34.6

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

日本語

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
한국어
Italiano
Polski
Türkçe
čeština
magyar

外観

Sidebar Navigation

はじめに

Vitest を選ぶ理由

はじめに

機能

Vitest の設定

API

テストAPIリファレンス

モック関数

Vi

expect

expectTypeOf

assert

assertType

ガイド

コマンドラインインターフェース

テストフィルタリング

テストプロジェクト

レポーター

カバレッジ

スナップショット

モック

並列処理

型テスト

Vitest UI

インソース・テスト

テストコンテキスト

テストアノテーション

テスト環境

マッチャーの拡張

IDE統合

デバッグ

よくあるエラー

移行ガイド

Vitest 3.0 への移行

Jest からの移行

パフォーマンス

テストパフォーマンスのプロファイリング

パフォーマンスの向上

ブラウザーモード

上級者向けAPI

他のテストランナーとの比較

このページの内容

テストフィルタリング ​

スイートとテストのフィルタリング、タイムアウト設定、並列実行について説明します。

CLI ​

CLI を使用して、テストファイルを名前でフィルタリングできます。

bash
$ vitest basic

これにより、basic を含むテストファイルのみが実行されます。例えば、以下のファイルが該当します。

basic.test.ts
basic-foo.test.ts
basic/foo.test.ts

また、-t, --testNamePattern <pattern> オプションを使用すると、テストを完全な名前でフィルタリングできます。このオプションは、ファイル名ではなく、ファイル内で定義されたテスト名でフィルタリングしたい場合に便利です。

Vitest 3 以降では、ファイル名と行番号を指定してテストを実行することも可能です。

bash
$ vitest basic/foo.test.ts:10

WARNING

この機能を利用するには、Vitest が完全なファイル名を必要とします。完全なファイル名とは、現在の作業ディレクトリからの相対パス、または絶対ファイルパスのいずれかです。

bash
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌

現時点では、Vitest は範囲指定をサポートしていません。

bash
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌

タイムアウトの指定 ​

オプションとして、テストの第3引数にミリ秒単位のタイムアウトを指定できます。デフォルトは 5秒 です。

ts
import { test } from 'vitest';

test('name', async () => {
  /* ... */
}, 1000);

フックにもタイムアウトを設定でき、デフォルトは同様に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 を使用します。

ts
import { describe, it } from 'vitest';

// このスイートのエントリがレポートに表示されます。
describe.todo('unimplemented suite');

// このテストのエントリがレポートに表示されます。
describe('suite', () => {
  it.todo('unimplemented test');
});
Pager
前のページコマンドラインインターフェース
次のページテストプロジェクト

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/guide/filtering

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team