VSCode调试器无法在Jest测试中使用

时间:2018-06-24 11:59:22

标签: visual-studio-code jestjs stenciljs

我正在努力让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测试,带有几个断点:

enter image description here

当我按下绿色的播放按钮以使用调试器运行测试时,决不会碰到断点。

任何帮助将不胜感激

6 个答案:

答案 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)

如果您在运行实际测试之前使用 babelswc 之类的转换器来转换测试,则 vscode 中的调试器可能无法工作。

对我来说,我只会使用 debugger