如何使用代码映射调试jest测试

时间:2016-02-01 14:55:46

标签: javascript jestjs

我的手上有一个失败的javascript jest测试,因此,我使用了常用的东西进行调试:     node-debug --nodejs --harmony ./node_modules/jest-cli/bin/jest.js --runInBand

所以,它实际上有效,但是所有的恶魔般的黑魔法都在幕后,我无法看到原始代码并让调试器正确地浏览它。我只得到我们讨厌的那些可怕的单行中的一个,或者有时会陷入调试器中的调用函数(试过chrome dev工具和visual studio代码)。 那么,有没有办法生成一个可用的js映射并用它来调试jest测试? 我是否必须通过观察调用堆栈并猜测我在我的代码中的位置来导航?

1 个答案:

答案 0 :(得分:2)

这个问题已经很老了,变了很多。对于最近的Jest调试冒险导致解决方案阅读我的帖子:

  

Debugging Jest unit tests with breakpoints in VS Code with React Native

简而言之,归结为:

  1. 使用NodeJS v8.*了!这是主要问题。 inspector协议不是生产就绪的。
    • 我将8.1.2降级为7.10.1
  2. 我使用Ignite CLI以默认ignite-ir-boilerplate引导项目
    • 但是如果不使用React Native或具有不同的首选项,您可以使用任何所需的样板。大多数样板材默认生成源图。
  3. 我使用了Visual Studio Code调试器v1.13.1,然后设置了以下配置:

    {
        "type": "node",
        "request": "launch",
        "name": "Launch Tests",
        "program": "${workspaceRoot}/node_modules/.bin/jest",
        "args": [
            "--runInBand",
            "--no-cache"
        ],
        "runtimeArgs": [
            "--debug-brk=127.0.0.1:5858"
        ],
        "port": 5858
    }
    
  4. 那就是它。您可以在应用程序代码,node_modules和单元测试中设置断点。