偵錯
TIP
當您在偵錯測試時,您可能想要使用 --test-timeout
命令行參數,以防止測試在停止於斷點時逾時。
VSCode
在 VSCode 中偵錯測試的快速方法是透過 JavaScript Debug Terminal
。開啟一個新的 JavaScript Debug Terminal
並直接執行 npm run test
或 vitest
。此方法適用於 Node 環境中執行的程式碼,因此可用於多數 JS 測試框架。
您還可以新增專用的啟動設定,以在 VSCode 中偵錯測試檔案:
json
{
// 如需更多資訊,請造訪: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 --threads false |
然後在偵錯模式下執行此設定。IDE 將會停止在編輯器中設定的 JS/TS 斷點。
Node Inspector,例如 Chrome DevTools
Vitest 亦支援在無 IDE 環境下進行偵錯,但須確保測試非並行執行。使用以下命令之一來啟動 Vitest。
sh
# 以單個 worker 執行
vitest --inspect-brk --single-thread
# 在子程序中執行
vitest --inspect-brk --single-thread --no-threads
Vitest 啟動後,將停止執行並等待您開啟可連接至 NodeJS inspector 的開發者工具。您可透過 Chrome DevTools 達成此目的,於瀏覽器中開啟 chrome://inspect
即可。
於監視模式下,您可使用 --single-thread --isolate false
選項,使偵錯工具在測試重新執行期間保持開啟。