跳到內容

除錯

提示

在除錯測試時,您可能想要使用 --test-timeout CLI 參數,以防止測試在中斷點停止時逾時。

VS Code

在 VS Code 中除錯測試的快速方法是透過 JavaScript Debug Terminal。開啟一個新的 JavaScript Debug Terminal 並直接執行 npm run testvitest這適用於在 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 中斷點處停止。

節點檢查器,例如 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 選項在測試重新執行期間保持偵錯器開啟。