如何使用node-inspector调试nodeunit

时间:2013-05-20 14:59:03

标签: node.js nodeunit node-inspector

我能做到:

  • 我可以使用nodeunit测试node.js模块。
  • 我可以使用node inspector调试我的node.js快速网站。

但是如何使用节点检查器调试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来观看调试时:

  1. 首次加载我看到空文件列表
  2. 第二次加载:找不到页面。
  3. 在我的nodeunit测试中,我写了debugger以停止调试。 但没什么。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

找到解决方案:

    控制台中的
  • 节点--debug-brk`哪个nodeunit` ./path/To/My/NodeUnitTests/nodeunit_test.coffee (注意:`哪个nodeunit`在后引号中)

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

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

  • 调试我的nodeunit测试