javascript - 如何使用代码图调试 Jest 测试

标签 javascript jestjs

我手上的 javascript Jest 测试失败了,所以我使用了通常的东西来调试: 节点调试 --nodejs --harmony ./node_modules/jest-cli/bin/jest.js --runInBand

所以,它实际上是有效的,但是由于幕后所有的 babel-jest 黑魔法,我无法看到原始代码并让调试器正确地浏览它。我只得到我们都讨厌的那些可怕的俏皮话之一,或者有时会卡在调试器中的调用函数中(尝试过 chrome 开发工具和 Visual Studio 代码)。 那么,有没有办法生成可用的js映射并用它来调试jest测试呢? 我是否必须仅通过观察调用堆栈并猜测我在代码段中的位置来进行导航?

最佳答案

这个问题已经很老了,已经发生了很大的变化。有关最近的 Jest 调试冒险并得出解决方案,请阅读我的文章:

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

简而言之,可以归结为:

  1. 暂时不要使用 NodeJS v8.*!这是主要问题。 inspector 协议(protocol)尚未做好生产准备。
    • 我从 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
    }
    

就是这样。您可以在应用代码、node_modules 和单元测试中设置断点。

关于javascript - 如何使用代码图调试 Jest 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133604/

相关文章:

typescript - 用 Jest 测试 typescript 中的私有(private)函数

JavaScript 检查对象是否具有继承属性

Javascript Web 动画 API 还是 CSS 动画关键帧?

javascript - Three.js 相对于相机的统一虚线

javascript - 如何在javascript中将新对象添加到本地存储?

javascript - 为什么在安装渲染时我的 Prop 没有传递到我的组件中?

javascript - 塌边向上开口

html - 用于测试 React 应用程序的 jest/enzyme 不提供页面标题,如何获取标题?

javascript - 使用 Jest 测试框架在没有导出的情况下测试 JavaScript

javascript - 开 Jest 没有找到所有测试