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 メソッドを使用して、テストまたはベンチマークの実行を開始できます。テストファイルをフィルタリングするために文字列配列を渡すことができます。