【问题标题】:How to debug Jest Tests when using Yarn 2 / Yarn PnP使用 Yarn 2 / Yarn PnP 时如何调试 Jest 测试
【发布时间】:2020-06-25 14:06:30
【问题描述】:

我想使用a previous answer 中描述的node --debug-brk 功能和jest docs 在基于npm/yarn 1 的项目中进行调试,但node_modules/ 在Yarn 2 / PnP 中是not present(Plug n Play) 基于项目,所以这些说明对我不起作用。

access a binary in yarn 2yarn run --inspect-brk jest --runInBand 的常用方法是从终端启动调试会话,但是当通过 chrome://inspect 连接到 Chrome 的远程目标检查器时,我们会收到一条关于无法连接到 jest.js 的错误消息二进制文件,因为它是.zip 文件的路径。

Uncaught Error: Cannot find module '/Users/MY_USERNAME/PATH_TO_MY_PROJECT/.yarn/cache/jest-npm-24.9.0-8ddb425e99-2.zip/node_modules/jest/bin/jest.js

在不降级到 Yarn 1 的情况下有哪些解决方法?

【问题讨论】:

    标签: jestjs yarnpkg-v2


    【解决方案1】:

    更新:下面报告的解决方法对于节点 12.15 及以下是必需的。在12.16.1之后,可以直接使用如下命令:

    yarn run --inspect-brk jest --runInBand
    

    添加到节点 12.16.1 的修复是 here

    旧版本 Node 12.15 及更低版本的存档答案

    一种选择是在使用yarn run之前使用yarn unplug

       yarn unplug jest
    

    之后,以下内容适用于 Yarn 2 中的 Jest 和 Chrome 的 chrome://inspect

       yarn run --inspect-brk jest --runInBand # any additional jest args
    

    这种方法的一个缺点是,您可能需要在签入分支之前撤消 unplug,因为它被描述为 short term measure,而不是留下依赖关系的长期状态。

    【讨论】:

      【解决方案2】:
      {
        "version": "0.2.0",
        "configurations": [
          {
            "type": "node",
            "request": "launch",
            "name": "Jest",
            "skipFiles": ["<node_internals>/**"],
            "cwd": "${workspaceFolder}",
            "runtimeExecutable": "yarn",
            "runtimeArgs": ["run", "--inspect-brk", "jest"],
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen",
            "port": 9229
          }
        ]
      }
      

      【讨论】:

        猜你喜欢
        • 2020-05-17
        • 2021-04-12
        • 1970-01-01
        • 2020-04-11
        • 2021-02-15
        • 2020-08-09
        • 2022-01-02
        • 1970-01-01
        • 2021-03-27
        相关资源
        最近更新 更多