【问题标题】:How can I stop being blocked by debugger statements in Jest?如何停止被 Jest 中的调试器语句阻塞?
【发布时间】:2021-01-16 06:33:46
【问题描述】:

我刚刚开始在我的 nodejs 项目中使用 Jest。我有几个测试都通过了,但是我刚刚编写的最后一个测试通过了,但是在两个地方被 Jest 用这样的代码阻止了:

/* istanbul ignore next */
cov_19rdmie87d().s[43]++;
debugger;

/* istanbul ignore next */
cov_19rdmie87d().s[53]++;
this debugger;

在运行我的测试时,我必须按 f5 继续两次。如何删除这些调试语句?

【问题讨论】:

  • 只需删除 debugger 行,以及检查源中的所有断点。
  • @Shujath 谢谢你,它奏效了。我很困惑,因为问题显示在 Jest 显示的只读页面中,其中包含大量 Jest 生成的代码。但实际上我在被测试文件中导入的文件中的一些调试器语句没有在执行路径中被命中,所以我从来没有想过它们。

标签: node.js visual-studio-code jestjs istanbul


【解决方案1】:

解决方案: 从代码中删除 debugger 语句,并从检查源中删除任何类型的断点。

更多关于 JS 调试的 Wiki

  • 调试器:如果你放置一个调试器;在您的代码中添加一行,Chrome 将在执行时自动停止。您甚至可以将其包装在条件中,因此它仅在您需要时运行。

  • 在控制台中输入 debug(item.myFunc) 脚本将在收到对 item.myFunc 的函数调用时停止在调试模式

  • 当您需要调试 JavaScript 时,Chrome 允许您在 DOM 元素更改时暂停。你甚至可以监控它的属性。在 Chrome Inspector 中,右键单击元素并选择要使用的设置中断。

有关更多信息,请查看 raygun 在debugging in javascript 上的这篇文章。

【讨论】:

    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多