デバッグ
TIP
テストをデバッグする際、ブレークポイントで停止中にテストがタイムアウトしないように、--test-timeout
CLI 引数を使用することを推奨します。
VSCode
VSCode でテストをデバッグする簡単な方法の一つは、JavaScript Debug Terminal
を使用することです。新しいJavaScript Debug Terminal
を開き、npm run test
またはvitest
コマンドを直接実行します。これは Node で実行されるコードであれば動作するため、ほとんどの JS テストフレームワークで利用可能です。
また、VSCode でテストファイルをデバッグするための専用の起動構成を追加することも可能です。
{
// 詳細については、https://go.microsoft.com/fwlink/?linkid=830387 を参照してください。
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Current Test File",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
次に、デバッグタブで「Debug Current Test File」が選択されていることを確認してください。その後、デバッグしたいテストファイルを開き、F5 キーを押してデバッグを開始できます。
IntelliJ IDEA
「Node.js」実行構成を作成し、デバッグモードですべてのテストを実行するために、以下の設定を使用します。
設定 | 値 |
---|---|
ワーキングディレクトリ | /path/to/your-project-root |
JavaScript ファイル | ./node_modules/vitest/vitest.mjs |
アプリケーションパラメータ | run --pool forks |
その後、この構成をデバッグモードで実行します。IDE はエディタに設定した JS/TS のブレークポイントで停止します。
Node Inspector(例:Chrome DevTools)
Vitest は IDE を使用せずにテストをデバッグすることも可能です。ただし、並行実行はできません。Vitest を起動するには、次のいずれかのコマンドを使用します。
# シングルワーカーで実行する場合
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# シングル子プロセスで実行する場合
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
Vitest 1.1 以降を使用している場合は、--no-file-parallelism
フラグを指定するだけでも構いません。
# poolが不明な場合
vitest --inspect-brk --no-file-parallelism
Vitest が起動すると、実行が停止し、Node.js インスペクター に接続できる開発ツールを開くまで待機します。 これには、ブラウザーで chrome://inspect
を開いて Chrome DevTools を使用できます。
ウォッチモードでは、--poolOptions.threads.isolate false
オプションを使用すると、テストの再実行中にデバッガーを開いたままにすることができます。