调试
TIP
调试测试时,你可能需要使用 --test-timeout
命令行参数,以防止在断点处暂停时测试超时。
VSCode
在 VSCode 中快速调试测试的方法是使用 JavaScript Debug Terminal
。打开一个新的 JavaScript Debug Terminal
并直接运行 npm run test
或 vitest
。这适用于任何在 Node.js 中运行的代码,因此也适用于大多数 JavaScript 测试框架。
你还可以添加专门的启动配置来调试测试文件:
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 将会在编辑器中设置的 JavaScript/TypeScript 断点处暂停。
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://inspect
即可使用 Chrome DevTools。
在监听模式下,你可以使用 --single-thread --isolate false
选项,以便在测试重新运行时保持调试器打开。