コマンドラインインターフェース
コマンド
vitest
現在のディレクトリで Vitest を起動します。開発環境では自動的にウォッチモードに入り、CI 環境では実行モードに切り替わります。
実行するテストファイルのフィルターとして、引数を追加できます。例:
vitest foobar
パスに foobar
を含むテストファイルのみが実行されます。このフィルターは単純な文字列包含チェックのみを行い、正規表現やグロブパターンはサポートしていません(ターミナルが Vitest にフィルターを送信する前に処理する場合を除きます)。
vitest run
ウォッチモードなしでテストを一度だけ実行します。
vitest watch
すべてのテストスイートを実行し、ファイルの変更を監視して、変更時にテストを再実行します。引数を指定せずに vitest
を実行する場合と同じです。CI 環境では vitest run
にフォールバックします。
vitest dev
vitest watch
のエイリアスです。
vitest related
指定されたソースファイルに関連するテストのみを実行します。静的インポート(例:import('./index.js')
や import index from './index.js'
)には対応していますが、動的インポート(例:import(filepath)
)には対応していません。すべてのファイルパスは、ルートフォルダからの相対パスで指定する必要があります。
lint-staged
または CI 環境での利用に便利です。
vitest related /src/index.ts /src/hello-world.js
TIP
Vitest はデフォルトでウォッチモードが有効になっていることに注意してください。lint-staged
のようなツールを使用している場合は、--run
オプションも渡して、コマンドが正常に終了するようにする必要があります。
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
パフォーマンスの結果を比較する ベンチマーク テストのみを実行します。
オプション
オプション | |
---|---|
-r, --root <path> | ルートパス |
-c, --config <path> | 設定ファイルへのパス |
-u, --update | スナップショットを更新 |
-w, --watch | ウォッチモードを有効化 |
-t, --testNamePattern <pattern> | 指定された正規表現パターンに一致する完全な名前を持つテストを実行 |
--dir <path> | テストファイルをスキャンするベースディレクトリ |
--ui | UI を有効化 |
--open | UI を自動的に開く (デフォルト: !process.env.CI ) |
--api.port [port] | サーバーポートを指定。ポートが既に使用されている場合、Vite は自動的に次の利用可能なポートを試行するため、実際にサーバーがリッスンするポートは異なる可能性があります。true の場合、51204 に設定されます。 |
--api.host [host] | サーバーがリッスンする IP アドレスを指定。LAN およびパブリックアドレスを含め、すべてのアドレスでリッスンするには、これを 0.0.0.0 または true に設定します。 |
--api.strictPort | ポートが既に使用されている場合に、次の利用可能なポートを自動的に試行する代わりに、終了する場合は true に設定します。 |
--silent | テストからのコンソール出力を抑制 |
--hideSkippedTests | スキップされたテストのログを非表示 |
--reporter <name> | レポーターを指定 |
--outputFile <filename/-s> | サポーターレポーターも指定されている場合、テスト結果をファイルに書き込みます。複数のレポーターの個々の出力には、cac のドット表記を使用してください (例: --outputFile.tap=./tap.txt) |
--coverage.all | テストされていないファイルを含むすべてのファイルをレポートに含めるかどうか |
--coverage.provider <name> | カバレッジ収集のツールを選択。利用可能な値は、"v8"、"istanbul"、"custom" |
--coverage.enabled | カバレッジ収集を有効にします。--coverage CLI オプションを使用してオーバーライドできます (デフォルト: false ) |
--coverage.include <pattern> | カバレッジに含めるファイルを glob パターンとして指定します。複数のパターンを使用する場合は複数回指定できます (デフォルト: ** ) |
--coverage.exclude <pattern> | カバレッジから除外するファイルを指定します。複数の拡張子を指定する場合は複数回指定できます (デフォルト: coverage.excludeを参照) |
--coverage.extension <extension> | カバレッジに含める拡張子を指定します。複数の拡張子を指定する場合は複数回指定できます (デフォルト: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"] ) |
--coverage.clean | テスト実行前にカバレッジ結果をクリーンアップ (デフォルト: true) |
--coverage.cleanOnRerun | ウォッチ再実行時にカバレッジレポートをクリーンアップ (デフォルト: true) |
--coverage.reportsDirectory <path> | カバレッジレポートを書き込むディレクトリ (デフォルト: ./coverage) |
--coverage.reporter <name> | 使用するカバレッジレポーター。詳しくはcoverage.reporterをご覧ください (デフォルト: ["text", "html", "clover", "json"] ) |
--coverage.reportOnFailure | テストが失敗した場合でもカバレッジレポートを生成 (デフォルト: false ) |
--coverage.allowExternal | プロジェクトルート外のファイルのカバレッジを収集 (デフォルト: false ) |
--coverage.skipFull | 100%のステートメント、ブランチ、および関数カバレッジを持つファイルを表示しない (デフォルト: false ) |
--coverage.thresholds.100 | すべてのカバレッジ閾値を 100 に設定するショートカット (デフォルト: false ) |
--coverage.thresholds.perFile | ファイルごとに閾値をチェックします。実際の閾値については、--coverage.thresholds.lines 、--coverage.thresholds.functions 、--coverage.thresholds.branches 、--coverage.thresholds.statements を参照してください (デフォルト: false ) |
--coverage.thresholds.autoUpdate | 現在のカバレッジが設定された閾値を超えている場合、"lines"、"functions"、"branches"、"statements"の閾値を設定ファイルに更新します (デフォルト: false ) |
--coverage.thresholds.lines <number> | 行の閾値。istanbuljs を参照してください。このオプションは、カスタムプロバイダーでは利用できません |
--coverage.thresholds.functions <number> | 関数の閾値。istanbuljs を参照してください。このオプションは、カスタムプロバイダーでは利用できません |
--coverage.thresholds.branches <number> | ブランチの閾値。istanbuljs を参照してください。このオプションは、カスタムプロバイダーでは利用できません |
--coverage.thresholds.statements <number> | ステートメントの閾値。istanbuljs を参照してください。このオプションは、カスタムプロバイダーでは利用できません |
--coverage.ignoreClassMethods <name> | カバレッジを無視するクラスメソッド名の配列。istanbuljs を参照してください。このオプションは、istanbul プロバイダーでのみ利用可能です (デフォルト: [] ) |
--coverage.processingConcurrency <number> | カバレッジ結果の処理に使用される並行処理の制限。(デフォルトは 20 と CPU 数のうち小さい方) |
--coverage.customProviderModule <path> | カスタムカバレッジプロバイダーモジュールのモジュール名またはパスを指定します。カスタムカバレッジプロバイダーを参照してください。このオプションは、カスタムプロバイダーでのみ利用可能です |
--coverage.watermarks.statements <watermarks> | ステートメントの高および低ウォーターマーク(<high>,<low> の形式) |
--coverage.watermarks.lines <watermarks> | 行の高および低ウォーターマーク(<high>,<low> の形式) |
--coverage.watermarks.branches <watermarks> | ブランチの高および低ウォーターマーク(<high>,<low> の形式) |
--coverage.watermarks.functions <watermarks> | 関数の高および低ウォーターマーク(<high>,<low> の形式) |
--mode <name> | Vite モードをオーバーライド (デフォルト: test または benchmark ) |
--workspace <path> | ワークスペース構成ファイルへのパス |
--isolate | すべてのテストファイルを分離して実行します。分離を無効にするには、--no-isolate を使用します (デフォルト: true ) |
--globals | API をグローバルに注入 |
--dom | happy-dom でブラウザ API をモック |
--browser.enabled | ブラウザでテストを実行します。--browser.enabled と同等 (デフォルト: false ) |
--browser.name <name> | 特定のブラウザですべてのテストを実行します。一部のブラウザは、特定のプロバイダーでのみ使用可能です ( --browser.provider を参照)。詳しくはbrowser.nameをご覧ください |
--browser.headless | ブラウザをヘッドレスモードで実行します (GUI (グラフィカルユーザーインターフェース) を開かずに)。Vitest を CI で実行している場合、デフォルトで有効になります (デフォルト: process.env.CI ) |
--browser.api.port [port] | サーバーポートを指定。ポートが既に使用されている場合、Vite は自動的に次の利用可能なポートを試行するため、実際にサーバーがリッスンするポートは異なる可能性があります。true の場合、63315 に設定されます。 |
--browser.api.host [host] | サーバーがリッスンする IP アドレスを指定。LAN およびパブリックアドレスを含め、すべてのアドレスでリッスンするには、これを 0.0.0.0 または true に設定します。 |
--browser.api.strictPort | ポートが既に使用されている場合に、次の利用可能なポートを自動的に試行する代わりに、終了する場合は true に設定します。 |
--browser.provider <name> | ブラウザテストの実行に使用されるプロバイダー。一部のブラウザは、特定のプロバイダーでのみ使用可能です。Can be "webdriverio"、"playwright" またはカスタムプロバイダーのパス。browser.providerを参照してください (デフォルト: "webdriverio" ) |
--browser.providerOptions <options> | ブラウザプロバイダーに渡されるオプション。browser.providerOptionsを参照してください。 |
--browser.slowHijackESM | Vitest にブラウザ上で独自のモジュール解決を使用させ、vi.mock や vi.spyOn などの API を有効にします。browser.slowHijackESMを参照してください (デフォルト: false ) |
--browser.isolate | 各ブラウザテストファイルを分離して実行します。分離を無効にするには、--browser.isolate=false を使用します (デフォルト: true ) |
--browser.fileParallelism | 全てのテストファイルを並列で実行すべきです。--browser.file-parallelism=false で無効にします(デフォルト:--file-parallelism と同じ) |
--pool <pool> | ブラウザで実行していない場合、プールを指定します(デフォルト:threads ) |
--poolOptions.threads.isolate | スレッドプールでテストを分離します(デフォルト:true ) |
--poolOptions.threads.singleThread | 単一のスレッド内でテストを実行します(デフォルト:false ) |
--poolOptions.threads.maxThreads <workers> | テストを実行する最大スレッド数 |
--poolOptions.threads.minThreads <workers> | テストを実行する最小スレッド数 |
--poolOptions.threads.useAtomics | Atomics を使用してスレッドを同期します。場合によってはパフォーマンスが向上しますが、古い Node バージョンではセグメンテーション違反が発生する可能性があります(デフォルト:false ) |
--poolOptions.vmThreads.isolate | スレッドプールでテストを分離します(デフォルト:true ) |
--poolOptions.vmThreads.singleThread | 単一のスレッド内でテストを実行します(デフォルト:false ) |
--poolOptions.vmThreads.maxThreads <workers> | テストを実行する最大スレッド数 |
--poolOptions.vmThreads.minThreads <workers> | テストを実行する最小スレッド数 |
--poolOptions.vmThreads.useAtomics | Atomics を使用してスレッドを同期します。場合によってはパフォーマンスが向上しますが、古い Node バージョンではセグメンテーション違反が発生する可能性があります(デフォルト:false ) |
--poolOptions.vmThreads.memoryLimit <limit> | VM スレッドプールのメモリ制限。メモリリークが発生する場合は、この値を調整してみてください。 |
--poolOptions.forks.isolate | フォークプールでテストを分離します(デフォルト:true ) |
--poolOptions.forks.singleFork | 単一の child_process 内でテストを実行します(デフォルト:false ) |
--poolOptions.forks.maxForks <workers> | テストを実行する最大プロセス数 |
--poolOptions.forks.minForks <workers> | テストを実行する最小プロセス数 |
--poolOptions.vmForks.isolate | フォークプールでテストを分離します(デフォルト:true ) |
--poolOptions.vmForks.singleFork | 単一の child_process 内でテストを実行します(デフォルト:false ) |
--poolOptions.vmForks.maxForks <workers> | テストを実行する最大プロセス数 |
--poolOptions.vmForks.minForks <workers> | テストを実行する最小プロセス数 |
--poolOptions.vmForks.memoryLimit <limit> | VM フォークプールのメモリ制限。メモリリークが発生する場合は、この値を調整してみてください。 |
--fileParallelism | すべてのテストファイルを並列で実行するかどうか。無効にするには--no-file-parallelism を使用します(デフォルト:true ) |
--maxWorkers <workers> | テストを実行する最大ワーカー数 |
--minWorkers <workers> | テストを実行する最小ワーカー数 |
--environment <name> | ブラウザで実行していない場合、ランナー環境を指定します(デフォルト:node ) |
--passWithNoTests | テストが見つからなくても成功にします |
--logHeapUsage | ノードで実行する際に、各テストのヒープサイズを表示します |
--allowOnly | only とマークされたテストとスイートを許可します(デフォルト:!process.env.CI ) |
--dangerouslyIgnoreUnhandledErrors | 発生した未処理のエラーを無視します |
--shard <shards> | <index>/<count> の形式で実行するテストスイートシャード |
--changed [since] | 変更されたファイルの影響を受けるテストを実行します(デフォルト:false ) |
--sequence.shuffle.files | ファイルをランダムな順序で実行します。 このオプションを有効にしても、実行時間の長いテストが早く開始されることはありません。(デフォルト:false ) |
--sequence.shuffle.tests | テストをランダムな順序で実行します(デフォルト:false ) |
--sequence.concurrent | テストを並行して実行します(デフォルト:false ) |
--sequence.seed <seed> | ランダム化シードを設定します。 このオプションは、--sequence.shuffle が false の場合は効果がありません。「ランダムシード」のページを参照してください |
--sequence.hooks <order> | フックが実行される順序を変更します。 受け入れられる値は、「stack」、「list」および「parallel」です。sequence.hooks を参照してください (デフォルト: "parallel" ) |
--sequence.setupFiles <order> | セットアップファイルが実行される順序を変更します。 受け入れられる値は、「list」と「parallel」です。「list」に設定すると、セットアップファイルは定義された順に実行されます。「parallel」に設定すると、セットアップファイルは並行して実行されます (デフォルト: "parallel" ) |
--inspect [[host:]port] | Node.js インスペクターを有効にします(デフォルト:127.0.0.1:9229 ) |
--inspectBrk [[host:]port] | Node.js インスペクターを有効にし、テスト開始前に中断します |
--testTimeout <timeout> | テストのデフォルトタイムアウト(ミリ秒単位)(デフォルト:5000 ) |
--hookTimeout <timeout> | デフォルトのフックタイムアウト(ミリ秒単位)(デフォルト:10000 ) |
--bail <number> | 指定された数のテストが失敗した場合にテストの実行を停止します(デフォルト:0 ) |
--retry <times> | テストが失敗した場合に、指定された回数だけ再試行します(デフォルト:0 ) |
--diff <path> | 差分インターフェイスの生成に使用される差分設定へのパス |
--exclude <glob> | テストから除外する追加のファイルグロブ |
--expandSnapshotDiff | スナップショットが失敗した場合に完全な差分を表示します |
--disableConsoleIntercept | コンソールロギングの自動インターセプトを無効にします(デフォルト:false ) |
--typecheck.enabled | テストと並行して型チェックを有効にします(デフォルト:false ) |
--typecheck.only | 型チェックテストのみを実行します。 これにより、型チェックが自動的に有効になります(デフォルト:false ) |
--typecheck.checker <name> | 使用する typechecker を指定します。 使用できる値は、「tcs」と「vue-tsc」および実行可能ファイルへのパスです(デフォルト:"tsc" ) |
--typecheck.allowJs | JavaScript ファイルを型チェックできるようにします。 デフォルトでは、tsconfig.json から値を取得します |
--typecheck.ignoreSourceErrors | ソースファイルからの型エラーを無視します |
--typecheck.tsconfig <path> | カスタム tsconfig ファイルへのパス |
--project <name> | Vitest ワークスペース機能を使用している場合に、実行するプロジェクトの名前。 複数のプロジェクトに繰り返すことができます:--project=1 --project=2 。 --project=packages* のようにワイルドカードを使用してプロジェクトをフィルタリングすることもできます |
--slowTestThreshold <threshold> | テストが遅いと見なされるまでのしきい値(ミリ秒)(デフォルト:300 ) |
--teardownTimeout <timeout> | tearDown 関数のデフォルトタイムアウト(ミリ秒単位)(デフォルト:10000 ) |
--maxConcurrency <number> | スイート内の同時テストの最大数(デフォルト:5 ) |
--run | ウォッチモードを無効にする |
--segfaultRetry <times> | セグメンテーション違反が原因でクラッシュした場合、テストスイートを再試行します(デフォルト:true ) |
--no-color | コンソール出力から色を削除します |
--clearScreen | ウォッチモードでのテストの再実行時にターミナル画面をクリアします(デフォルト:true ) |
--standalone | テストを実行せずに Vitest を起動します。 ファイルフィルターは無視され、テストは変更時のみに実行されます(デフォルト:false ) |
TIP
Vitest は、CLI 引数に対してキャメルケースとケバブケースの両方をサポートしています。たとえば、--passWithNoTests
と --pass-with-no-tests
はどちらも機能します(--no-color
と --inspect-brk
は例外です)。
Vitest は、値の指定方法も異なり、--reporter dot
と --reporter=dot
はどちらも有効です。
オプションが値の配列をサポートしている場合は、オプションを複数回渡す必要があります。
vitest --reporter=dot --reporter=default
ブール値オプションは、no-
プレフィックスで否定できます。値を false
として指定することもできます。
vitest --no-api
vitest --api=false
changed
Type:
boolean | string
Default:
false
変更されたファイルに対してのみテストを実行します。値が指定されていない場合、コミットされていない変更(ステージング済み、未ステージングを含む)に対してテストが実行されます。
最新のコミットで行われた変更に対してテストを実行するには、
--changed HEAD~1
を使用できます。コミットハッシュ (例:--changed 09a9920
) またはブランチ名 (例:--changed origin/develop
) を渡すこともできます。コードカバレッジと一緒に使用すると、レポートには変更に関連するファイルのみが含まれます。
forceRerunTriggers
構成オプションと組み合わせると、forceRerunTriggers
リストにリストされているファイルの少なくとも 1 つが変更された場合、テストスイート全体が実行されます。デフォルトでは、Vitest 構成ファイルとpackage.json
への変更は常にスイート全体を再実行します。
shard
Type:
string
Default: disabled
実行するテストスイートのシャードを
<index>
/<count>
の形式で指定します。count
は正の整数で、分割されたパーツの数です。index
は正の整数で、分割されたパーツのインデックスです。
このコマンドは、すべてのテストを
count
個の等しい部分に分割し、index
の部分に含まれるテストのみを実行します。たとえば、テストスイートを 3 つのパーツに分割するには、次のようにします。shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
このオプションは、--watch
が有効な場合は使用できません(デフォルトでは開発時に有効)。