【发布时间】: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