コマンドラインインターフェース
コマンド
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
ヒント
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> | グロブパターンとしてカバレッジに含まれるファイル。複数のパターンを使用する場合、複数回指定できます(デフォルト:** ) |
--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 | 現在のカバレッジが構成されたしきい値を超えている場合、「行」、「関数」、「ブランチ」、および「ステートメント」のしきい値を構成ファイルに更新します(デフォルト: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(グラフィカルユーザーインターフェース)を開かずに)で実行します。CIでVitestを実行している場合、デフォルトで有効になります(デフォルト: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> | ブラウザテストの実行に使用するプロバイダー。一部のブラウザは特定のプロバイダーでのみ使用できます。「webdriverio」、「playwright」、またはカスタムプロバイダーへのパスを指定できます。詳細については、browser.provider を参照してください(デフォルト:"webdriverio" ) |
--browser.providerOptions <options> | ブラウザプロバイダーに渡されるオプション。詳細については、browser.providerOptions を参照してください |
--browser.slowHijackESM | vi.mockやvi.spyOnなどのAPIを有効にするために、Vitestにブラウザで独自のモジュール解決を使用させます。詳細については、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 | Node で実行中に各テストのヒープサイズを表示します。 |
--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 が偽の場合には効果がありません。詳細については、「Random Seed」のページを参照してください。 |
--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> | テストから除外する追加のファイル glob。 |
--expandSnapshotDiff | スナップショットが失敗した場合に完全な差分を表示します。 |
--disableConsoleIntercept | コンソールログの自動インターセプトを無効にします(デフォルト: false )。 |
--typecheck.enabled | テストと並行して型チェックを有効にします(デフォルト: false )。 |
--typecheck.only | 型チェックテストのみを実行します。これにより、型チェックが自動的に有効になります(デフォルト: false )。 |
--typecheck.checker <name> | 使用する型チェッカーを指定します。利用可能な値は、"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> | テアダウン関数のデフォルトのタイムアウトをミリ秒単位で指定します(デフォルト: 10000 )。 |
--maxConcurrency <number> | スイート内の同時テストの最大数(デフォルト: 5 )。 |
--run | ウォッチモードを無効にします。 |
--segfaultRetry <times> | セグメンテーション違反によりクラッシュした場合、テストスイートを再試行します(デフォルト: true )。 |
--no-color | コンソール出力から色を削除します。 |
--clearScreen | ウォッチモード中にテストを再実行するときにターミナル画面をクリアします(デフォルト: true )。 |
--standalone | テストを実行せずに Vitest を起動します。ファイルフィルターは無視され、テストは変更時のみ実行されます(デフォルト: false )。 |
ヒント
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
型:
boolean | string
デフォルト: false
変更されたファイルに対してのみテストを実行します。値が指定されていない場合は、コミットされていない変更(ステージングされたものとステージングされていないものを含む)に対してテストが実行されます。
最後のコミットで行われた変更に対してテストを実行するには、
--changed HEAD~1
を使用できます。コミットハッシュ(例:--changed 09a9920
)またはブランチ名(例:--changed origin/develop
)を渡すこともできます。コードカバレッジとともに使用すると、レポートには変更に関連するファイルのみが含まれます。
forceRerunTriggers
設定オプションと組み合わせて使用すると、forceRerunTriggers
リストにリストされているファイルの少なくとも 1 つが変更された場合、テストスイート全体が実行されます。デフォルトでは、Vitest の設定ファイルとpackage.json
の変更は常にスイート全体を再実行します。
shard
型:
string
デフォルト: 無効
実行するテストスイートのシャードを
<index>
/<count>
の形式で指定します。ここでcount
は正の整数で、分割された部分の数を示します。index
は正の整数で、分割された部分のインデックスを示します。
このコマンドは、すべてのテストを
count
の等しい部分に分割し、index
の部分に該当するもののみを実行します。たとえば、テストスイートを 3 つの部分に分割するには、次のようにします。shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
警告
このオプションは、--watch
が有効になっている場合(開発ではデフォルトで有効)は使用できません。