デバッグ
TIP
テストのデバッグ中にブレークポイントで停止した際にタイムアウトするのを防ぐため、--test-timeout
CLI引数を使用することをお勧めします。
VS Code
VS Codeでテストをデバッグする簡単な方法として、JavaScript Debug Terminal
が利用できます。新しいJavaScript Debug Terminal
を開き、npm run test
またはvitest
を直接実行してください。この方法はNode.jsで実行されるあらゆるコードに適用できるため、ほとんどのJavaScriptテストフレームワークで機能します。
VS Codeでテストファイルをデバッグするための専用の起動設定を追加することも可能です。
{
// 詳細については、https://go.microsoft.com/fwlink/?linkid=830387 を参照してください。
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "現在のテストファイルをデバッグ",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}
次に、デバッグタブで「現在のテストファイルをデバッグ」が選択されていることを確認してください。その後、デバッグしたいテストファイルを開き、F5キーを押してデバッグを開始できます。
ブラウザモード
Vitestブラウザモードをデバッグするには、CLIで--inspect
または--inspect-brk
を渡すか、Vitestの設定ファイルで定義します。
vitest --inspect-brk --browser --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
inspectBrk: true,
fileParallelism: false,
browser: {
name: 'chromium',
provider: 'playwright',
},
},
});
デフォルトでは、Vitestはデバッグポートとして9229
を使用します。--inspect-brk
に値を渡すことで、このポートを上書きできます。
vitest --inspect-brk=127.0.0.1:3000 --browser --no-file-parallelism
Vitestを起動し、ブラウザでデバッガをアタッチするには、以下のVSCode複合設定を使用してください。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Vitestブラウザを実行",
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"console": "integratedTerminal",
"args": ["--inspect-brk", "--browser", "--no-file-parallelism"]
},
{
"type": "chrome",
"request": "attach",
"name": "Vitestブラウザにアタッチ",
"port": 9229
}
],
"compounds": [
{
"name": "Vitestブラウザをデバッグ",
"configurations": ["Vitestブラウザにアタッチ", "Vitestブラウザを実行"],
"stopAll": true
}
]
}
IntelliJ IDEA
vitest実行設定を作成します。デバッグモードですべてのテストを実行するには、以下の設定を使用します。
設定 | 値 |
---|---|
作業ディレクトリ | /path/to/your-project-root |
次に、この設定をデバッグモードで実行します。IDEはエディタで設定されたJavaScript/TypeScriptのブレークポイントで停止します。
Node Inspector、例:Chrome DevTools
VitestはIDEを使用しないテストデバッグもサポートしています。ただし、この場合、テストは並列実行されないようにする必要があります。Vitestを起動するには、以下のいずれかのコマンドを使用します。
# シングルワーカーで実行
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread
# シングル子プロセスで実行
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork
# ブラウザモードで実行
vitest --inspect-brk --browser --no-file-parallelism
Vitest 1.1以降を使用している場合は、--no-file-parallelism
フラグを提供するだけでも構いません。
# プールが不明な場合
vitest --inspect-brk --no-file-parallelism
Vitestが起動すると、実行が一時停止され、Node.jsインスペクターに接続できる開発者ツールを開くのを待ちます。これには、ブラウザでchrome://inspect
を開くことでChrome DevToolsを使用することができます。
ウォッチモードでは、--poolOptions.threads.isolate false
オプションを使用すると、テストの再実行中もデバッガを開いたままにできます。