如何使用 node-inspector 调试 nodeunit

Posted

技术标签:

【中文标题】如何使用 node-inspector 调试 nodeunit【英文标题】:how to debug nodeunit using node-inspector 【发布时间】:2013-05-15 04:17:14 【问题描述】:

我能做到:

我可以使用 nodeunit 测试 node.js 模块。 我可以使用 node inspector 调试我的 node.js express 站点。

但是如何使用节点检查器调试 nodeunit 测试?

我试过了,但没用:

nodeunit --debug myNodeUnitModule_test.js 不行。 我尝试安装nodebug。 并像这样使用它:nodebug /usr/local/bin/nodeunit myNodeunit_test.js 但它在 ubuntu (No such file or directory) 和 mac (env: node\r: No such file or directory) 上都不起作用

几乎可以工作 node --debug /usr/local/bin/nodeunit ./routes/edit/bodyTelInfoArraysToObject_test.js

其中/usr/local/bin/nodeunit 是命令which nodeunit 采用的路径

得到输出: debugger listening on port 5858 并在那里执行测试。

但是我不能跳入调试:当我在 chrome 中打开 url localhost:8080 观看调试时:

    第一次加载我看到空文件列表 第二次加载:找不到页面。

在我的 nodeunit 测试中,我写了debugger 以停止在那里调试。 但什么都没有。

【问题讨论】:

【参考方案1】:

在您的测试中插入debugger; 命令

exports['Main test'] = function(test)
    debugger;

    test.expect(1);
    test.ok(true, 'Must be ok');
    test.done();
;

开始这一切

$ node --debug-brk `which nodeunit` test.js

现在在浏览器中按 F8,然后按 F10,您就在测试中第一个 debugger; 命令之后的下一行。

但我更喜欢使用 node-supervisor 启动所有内容,当测试完成或项目目录中的文件更改时会自动重新启动测试:

$ npm -g install supervisor node-inspector

$ # console 1
$ # supervisor restarts node-inspector when it quits
$ # ignores file changes
$ supervisor -i . -x node-inspector .

$ # console 2
$ supervisor --debug-brk -- `which nodeunit` test/index.js

【讨论】:

【参考方案2】:

找到解决方案:

在控制台中: node --debug-brk `which nodeunit` ./path/To/My/NodeUnitTests/nodeunit_test.coffee(注意:`which nodeunit` 在反引号中)

在另一个控制台中: node-inspector &

在谷歌浏览器中打开:http://0.0.0.0:8080/debug?port=5858 在这里,我看到 nodeunit 从一开始就在调试。在浏览器中单击继续执行几次,直到跳转到 nodeunit 测试,其中我有 debugger; 字符串。所以我用 nodeinspector 调试我的 nodeunit 测试

【讨论】:

以上是关于如何使用 node-inspector 调试 nodeunit的主要内容,如果未能解决你的问题,请参考以下文章

node-inspector调试工具

使用node-inspector调试nodejs程序<nodejs>

使用 node-inspector 调试 node.js

使用 node-inspector 调试 nodejs

nodejsgulp调试工具node-inspector使用

Nodejs chrome 调试node-inspector