是因为Jest默认在沙箱环境中运行测试代码,无法直接附加调试器。不过,可以通过以下方法解决这个问题:
--inspect-brk
标志运行Jest:在运行Jest命令时,添加--inspect-brk
标志可以启动Node.js的调试器,并在第一行代码处暂停执行,等待调试器连接。例如:jest --inspect-brk
然后,打开Chrome浏览器,输入chrome://inspect
,点击"Open dedicated DevTools for Node"链接,即可连接到调试器并进行调试。
.vscode/launch.json
文件中配置Jest的调试器。在该文件中添加以下配置:{
"version": "0.2.0",
"configurations": [
{
"name": "Jest",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"${workspaceFolder}/node_modules/.bin/jest",
"--runInBand"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
然后,在VS Code中按下F5键即可启动Jest的调试器。
--runInBand
标志运行Jest:在运行Jest命令时,添加--runInBand
标志可以强制Jest在单线程中运行测试,这样可以避免沙箱环境的限制。例如:jest --runInBand
这样,Jest将在当前进程中运行测试,可以直接使用调试器进行调试。
总结起来,解决运行Jest测试时无法附加调试器的方法有三种:使用--inspect-brk
标志运行Jest、使用VS Code进行调试、使用--runInBand
标志运行Jest。具体选择哪种方法取决于个人偏好和开发环境。
领取专属 10元无门槛券
手把手带您无忧上云