【问题标题】:VS Code breakpoints jump to other linesVS Code 断点跳转到其他行
【发布时间】:2018-10-02 13:00:09
【问题描述】:

因为我还没有解决我的其他问题Randomly failing tests jest and supertest Node.js 我决定使用VS Code 调试器。我认为这会很简单,但是在我在某行设置断点并运行调试器后,我发现我的断点图标在不同的位置,我的代码停在那里。

我的 launch.json 文件:

{
    "type": "node",
    "request": "launch",
    "name": "Jest Current File",
    "program": "${workspaceFolder}/node_modules/jest/bin/jest",
    "args": ["${relativeFile}"]
}

之前:

之后:

知道为什么会这样吗?

【问题讨论】:

  • 这通常发生在您试图中断的代码行不能直接通过断点到达。在将 IDE 与 C++ 或 C# 一起使用时,您会在声明中放置断点时看到这一点,因为它们实际上不是代码行。我怀疑这也发生在你身上,因为你试图打破内联函数的 then() 部分,但我对此不是 100% 确定。
  • 看起来您在 Promise 回调中附加了一个断点。这是预期的,因为断点所在的行(以及.then 回调中的其余行)将在异步操作完成时运行(触发.then
  • 愚蠢的问题,但你是让程序运行,还是单步执行?您应该给 promise 足够的时间来解决以达到断点。放置一些控制台语句将帮助我们弄清楚代码在到达第二个断点之前正在做什么,以及为什么它没有到达第一个断点。控制台为空使其更具挑战性。
  • FWIW 我只是在 VS Code 中设置了 jest 并重新连接。我可以在测试或代码中设置断点,但是当它运行时,它会跳遍整个商店,没有押韵或原因。

标签: javascript node.js testing visual-studio-code jestjs


【解决方案1】:

我只是用普通的摩卡,所以可能有点不同。但是我之前注意到了这一点,我会在 then() 中设置一个内联断点(cmd+shift+p - 搜索内联断点)

【讨论】:

    【解决方案2】:

    .then() 之后使用.catch(),根据我的经验,由于调用了一些异常并且未调用catch,它不会使用.then()。我一直在使用 chai mocha 进行测试,遇到了同样的问题。尝试添加.catch(),它将表明您的API 可能有问题并到达catch 语句。

    【讨论】:

      【解决方案3】:

      您可以尝试清理工作区并创建一个新的launch.json 文件

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,我已经 updated 我的 VScode 并像这样更改我的午餐文件:

        {
            "type": "node",
            "request": "launch",
            "name": "Jest tests",
            "program": "${workspaceRoot}/node_modules/jest/bin/jest.js",
            "args": ["--verbose", "-i", "--no-cache"],
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen"
        }
        

        【讨论】:

          【解决方案5】:

          通常在某些 IDE 中,断点固定为行号。因此,如果在设置断点后该文件中的代码发生更改,则断点不会移动。因此,在进行更改时,

          • 停止调试模式
          • 进行更改
          • 设置断点
          • 再次启动调试模式。 这对我有用。

          【讨论】:

            【解决方案6】:

            由于 API 请求引发了一些错误,因此无法执行该行。使用 catch 块处理错误。在 catch 块中打印错误。您还可以在 catch 块中为代码添加断点以查看有关错误的更多详细信息。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-04-12
              • 2017-08-17
              • 2022-01-17
              • 2018-11-21
              • 2017-10-22
              • 2020-12-06
              • 2015-05-18
              • 2019-04-22
              相关资源
              最近更新 更多