コンテンツにスキップ

デバッグ

ヒント

テストをデバッグする場合は、--test-timeout CLI 引数を使用して、ブレークポイントで停止したときにテストがタイムアウトしないようにします。

VS Code

VS Code でテストをデバッグする簡単な方法は、JavaScript Debug Terminal を使用することです。新しい JavaScript Debug Terminal を開いて、npm run test または vitest を直接実行します。これは Node で実行される任意のコードで機能するため、ほとんどの JS テストフレームワークで機能します

image

VS Code でテストファイルをデバッグするための専用の起動構成を追加することもできます

json
{
  // For more information, visit: 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"
    }
  ]
}

次に、デバッグタブで「現在のテストファイルをデバッグ」が選択されていることを確認します。デバッグするテストファイルを開いて 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 を起動するには、次のコマンドのいずれかを使用します。

sh
# To run in a single worker
vitest --inspect-brk --pool threads --poolOptions.threads.singleThread

# To run in a single child process
vitest --inspect-brk --pool forks --poolOptions.forks.singleFork

Vitest 1.1 以降を使用している場合は、--no-file-parallelism フラグを指定するだけで済みます

sh
# If pool is unknown
vitest --inspect-brk --no-file-parallelism

Vitest が起動すると、実行が停止して開発者ツールを開くのを待ちます。開発者ツールは Node.js のインスペクターに接続できます。ブラウザで chrome://inspect を開くと、Chrome DevTools を使用できます。

ウォッチモードでは、--poolOptions.threads.isolate false オプションを使用することで、テストの再実行中にデバッガーを開いたままにすることができます。

MIT ライセンスに基づいてリリースされています。