调试
提示
在调试测试时,您可能希望使用 --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 断点处停止。
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
选项在测试重新运行期间保持调试器打开。