除錯
提示
在除錯測試時,您可能想要使用 --test-timeout
CLI 參數,以防止測試在中斷點停止時逾時。
VS Code
在 VS Code 中除錯測試的快速方法是透過 JavaScript Debug Terminal
。開啟一個新的 JavaScript Debug Terminal
並直接執行 npm run test
或 vitest
。這適用於在 Node 中執行的任何程式碼,因此適用於大多數 JS 測試架構
您也可以新增一個專用的啟動設定,以在 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
選項在測試重新執行期間保持偵錯器開啟。