11

我可以:

但是如何使用节点检查器调试 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 并在那里执行测试。

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

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

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

4

2 回答 2

11

在您的测试中插入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
于 2013-05-22T12:20:58.943 回答
3

找到的解决方案:

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

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

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

于 2013-05-22T12:10:53.093 回答