偵錯
TIP
當您在偵錯測試時,您可能想要使用 --test-timeout
命令行參數,以防止測試在停止於斷點時逾時。
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。
# 以單 worker 執行
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 DevTools,通過在瀏覽器中打開 chrome://inspect
來實現。
在監聽模式下,您可以使用 --poolOptions.threads.isolate false
選項來保持除錯器在測試重新執行時保持開啟狀態。