gpt4 book ai didi

node.js - 在 Debug模式下,当使用 Node 检查器时,mocha 不会停止在规范文件中的调试器语句上

转载 作者:搜寻专家 更新时间:2023-10-31 23:55:24 24 4
gpt4 key购买 nike

当我使用 --debug-brk 运行 mocha 并使用 node-inspector 打开 chrome 开发工具时,调试器会跳过我放入规范文件中的任何调试器语句。

如果我遵循 this trick,我可以让调试器语句在模块文件中工作在 mocha 库的底部放置一个断点。

还有其他人遇到过这个问题吗?

最佳答案

看来每个人都应该在 node-inspector 版本 0.2.0beta4 上看到同样的问题。

问题在于如何管理断点:

  • 前端会记住浏览器本地存储中的断点,并在加载相关文件后恢复断点。
  • 当您使用 --debug-brk 启动 mocha 并在第一行停止时,您的规范文件尚未加载,因此前端不会恢复您的断点。
  • 当您恢复 mocha 执行时,前端无法在解析和运行 specfile 之间的短窗口内足够快地恢复断点。事实上,mocha 可能会在 V8 调试器进行更改以通知前端有关正在解析的新脚本之前退出!

此问题的另一个解决方法是在要触发断点的规范文件中添加 debugger; 语句。

编辑

请注意,如果您在 it 回调(即规范实现)中设置断点,github 上的 Node 检查器问题中提到的解决方案将起作用,但它不会帮助您在构建规范描述的代码(即规范文件中的顶级代码和所有 describe 回调)。

例子:

var expect = require('chai').expect;
var calculator = require('./StringCalculator');

// CANNOT break on the line below
describe('add', function() {
// CANNOT break on the line below
it('returns 0 for empty string', function() {
// CAN break on the line below
expect(calculator.add('')).to.equal(0);
});
});

EDIT2

问题已在我的 Node 检查器分支中修复:https://github.com/strongloop/node-inspector .在浏览器中加载 Node 检查器 UI 后,您可以立即在规范文件中的任何位置设置断点。

关于node.js - 在 Debug模式下,当使用 Node 检查器时,mocha 不会停止在规范文件中的调试器语句上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16967499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com