我正在努力让Visual Studio Code调试器与Jest测试一起使用。
这是我的launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest All",
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
"args": ["--runInBand"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"sourceMaps": true
}
]
}
这是我的Jest测试,带有几个断点:
当我按下绿色的播放按钮以使用调试器运行测试时,决不会碰到断点。
任何帮助将不胜感激
答案 0 :(得分:2)
此配置让我调试一下测试。不幸的是,即使正在逐步执行正确的代码,在组件中命中断点也不会显示正确的行。我相信这可能是VSCode错误
{
"name": "Jest", // This is the configuration name you will see in debug sidebar
"type": "node",
"request": "launch",
"port": 5858,
"address": "localhost",
"stopOnEntry": false,
"runtimeExecutable": null,
"env": {
"NODE_ENV": "development"
},
"console": "integratedTerminal",
"preLaunchTask": "compile",
"runtimeArgs": [
"--inspect-brk", // node v8 use debug-brk if older version of node
"${workspaceRoot}/node_modules/.bin/jest",
"--watch",
"--bail",
"--runInBand"
],
"cwd": "${workspaceRoot}"
},
答案 1 :(得分:1)
我个人使用此配置
{
"name": "Launch e2e test",
"type": "node",
"request": "launch",
"env": {
"NODE_ENV": "test"
},
"args": [
"--colors",
"--config=${workspaceFolder}/jest-e2e.config.js",
"--runInBand",
"--coverage"
],
"runtimeArgs": [
"--nolazy"
],
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
},
"outputCapture": "std",
"internalConsoleOptions": "openOnSessionStart"
}
通过您的配置文件更改jest-e2e.config.js。并删除或保留报道
就像劳拉·斯洛克姆(Laura Slocum)所说,您肯定会遇到行号问题。就我而言,过时的认为问题出在开玩笑的配置,即转换:
transform: {
"^.+\\.(t|j)s$": "ts-jest"
},
答案 2 :(得分:1)
我遇到了相同的问题,行号被关闭。在源文件中,我有将近30行需求,并且调试器中加载的测试文件在每个需求之间添加了一个空格。因此,在vscode中加载的文件大约长60行。
我发现此帖子解决了我的问题:Debugging Jest Tests in VS Code: Breakpoints Move
答案 3 :(得分:0)
对我来说,问题是launch.json中program
属性的值。如果您的launch.json如下所示:
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
检查$ {workspaceFolder} / node_modules / jest / bin / jest是否实际有效。对我来说,node_modules在这里不存在,但是在workspaceFolder
的子目录中。
答案 4 :(得分:0)
以下是在尝试了所有其他方法之后唯一对我有用的launch.config:|
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest",
"program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
"args": [
"-i"
],
"skipFiles": [
"<node_internals>/**/*.js", "node_modules",
]
}
]
}
答案 5 :(得分:0)
如果您在运行实际测试之前使用 babel
或 swc
之类的转换器来转换测试,则 vscode 中的调试器可能无法工作。
对我来说,我只会使用 debugger
。