Node API
WARNING
Vitest は実験的なプライベート API を提供しています。破壊的変更がセマンティックバージョニングに従わない可能性があるため、使用する際は Vitest のバージョンを固定してください。
startVitest
Node API を使用して Vitest のテスト実行を開始できます。
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();
startVitest
関数は、テストを開始できる場合は Vitest
インスタンスを返します。以下のいずれかの条件に該当する場合、undefined
が返されます。
- Vitest が
vite
パッケージを見つけられなかった場合 (通常は Vitest と共にインストールされます) - カバレッジが有効になっているにもかかわらず、実行モードが "test" で、かつカバレッジパッケージがインストールされていない場合 (
@vitest/coverage-v8
または@vitest/coverage-istanbul
) - 環境パッケージ (
jsdom
/happy-dom
/@edge-runtime/vm
) がインストールされていない場合
undefined
が返された場合、またはテスト実行中にエラーが発生した場合、Vitest は process.exitCode
を 1
に設定します。
ウォッチモードが無効な場合、Vitest は close
メソッドを呼び出します。
ウォッチモードが有効で、ターミナルが TTY をサポートしている場合、Vitest はコンソールショートカットを登録します。
フィルタのリストを第 2 引数として渡すと、Vitest は、渡された文字列のいずれかをファイルパスに含むテストのみを実行します。
さらに、第 3 引数を使用して CLI 引数を渡すことができます。これにより、テスト構成オプションが上書きされます。
または、第 4 引数として完全な Vite 構成を渡すこともできます。これは、他のユーザー定義オプションよりも優先されます。
createVitest
createVitest
関数を使用して、Vitest インスタンスを自分で作成できます。これは startVitest
と同じ Vitest
インスタンスを返しますが、テストを開始せず、インストールされているパッケージの検証も行いません。
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});
parseCLI
このメソッドを使用すると、CLI 引数を解析できます。このメソッドは、文字列(引数は単一のスペースで区切られます)または Vitest CLI が使用するのと同じ形式の CLI 引数の文字列配列を受け入れます。このメソッドは、フィルターと options
を返します。これらは後で createVitest
または startVitest
メソッドに渡すことができます。
import { parseCLI } from 'vitest/node';
parseCLI('vitest ./files.ts --coverage --browser=chrome');
Vitest
Vitest インスタンスには現在のテストモードの指定が必要です。次のいずれかになります。
- ランタイムテストを実行する場合は
test
- ベンチマークを実行する場合は
benchmark
mode
test
テストモードでは、test
または it
内の関数のみを呼び出すことができ、bench
が検出されるとエラーが発生します。このモードでは、構成の include
および exclude
オプションを使用してテストファイルを検索します。
benchmark
ベンチマークモードでは bench
関数を呼び出すことができ、test
または it
が検出されるとエラーが発生します。このモードでは、構成の benchmark.include
および benchmark.exclude
オプションを使用してベンチマークファイルを検索します。
start
start
メソッドを使用して、テストまたはベンチマークの実行を開始できます。テストファイルをフィルタリングするために文字列配列を渡すことができます。