调试测试
有多种方法可以为你的 Jest 测试设置调试器。我们将介绍 Chrome 和 Visual Studio Code 中的调试。
注意:调试测试需要 Node 8 或更高版本。
在 Chrome 中调试测试
将以下内容添加到项目的 package.json 中的 scripts 部分
"scripts": {
    "test:debug": "react-scripts --inspect-brk test --runInBand"
  }
在任何测试和运行中放置 debugger; 语句:
$ npm run test:debug
这将开始运行你的 Jest 测试,但在执行之前暂停以允许调试器附加到进程。
在 Chrome 地址栏中输入以下内容,回车:
about:inspect
打开该链接后,将显示 Chrome 开发者工具。选择 inspect 进程并在 react 脚本的第一行设置断点(这样做只是为了让你有时间打开开发人员工具并防止 Jest 在你有时间之前执行)。单击屏幕右上角看起来像 “play” 按钮的按钮以继续执行。当 Jest 执行包含调试器语句的测试时,执行将暂停,你可以检查当前范围和调用堆栈。
注意:--runInBand cli 选项可确保 Jest 在同一进程中运行测试,而不是为单个测试生成进程。通常,Jest 会跨进程并行化测试运行,但很难同时调试多个进程。
在 Visual Studio Code 中调试测试
Visual Studio Code 支持调试 Jest 测试。
使用以下 launch.json 配置文件:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug CRA Tests",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/react-scripts",
      "args": [
        "test",
        "--runInBand",
        "--no-cache"
      ],
      "cwd": "${workspaceRoot}",
      "protocol": "inspector",
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen"
    }
  ]
}