用mocha的–debug-brk开关启用节点debugging器的正确方法是什么?

我在我的testing模块中有一些debugging器语句,并希望与–debug-brk集合运行摩卡,并打我的断点,以便我可以检查我的模块的状态。 不幸的是,每当我用这个选项运行摩卡,我最后在下一行的空白光标。 我可以input文本,但没有任何东西可以处理我的命令(它看起来不像节点debugging器):

$ mocha --debug-brk tests.js -R spec debugger listening on port 5858 [BLANK CURSOR] 

我在做摩卡咖啡的时候做错了什么?

为了回答原来的问题,即使我也build议你看一下node-inspector :你可以使用debug选项,而不是使用--debug--debug-brk 标志 ,通过mocha使用内置在节点中的CLIdebugging器。 (注意缺less破折号。)

在你的例子中,相反,它将是:

  $ mocha debugging tests.js -R spec
debugging器在端口5858上侦听
连接...好的
打破node_modules / mocha / bin / _mocha:7
   5 * /
   6 
   7 var program = require('commander')
   8,sprintf = require('util')。格式
   9,path = require('path')
debugging> [CURSOR] 

再次,如上粗体debug ,没有破折号。 (=

相关: https : //github.com/visionmedia/mocha/issues/247

我能够得到这个使用节点检查工作 。 我像在一个shell中显示一样运行我的testing:

 mocha --debug-brk mocha/test.js 

然后在第二个shell中运行node-inspector:

 node-inspector 

引入节点检查器在浏览器中吐出的URL可以让我使用Web检查器进行debugging。

 http://127.0.0.1:8080/debug?port=5858 

使用最新版本的nodejs( > = v6.3.0 )和mocha( > = 3.1.0 ),可以使用V8 inspector集成 。

V8 Inspector集成允许将Chrome DevTools附加到Node.js实例中进行debugging和分析

用法

--inspect激活V8检查器集成,并且--debug-brk在开始时添加一个断点。

 $ mocha --debug-brk --inspect Debugger listening on port 9229. Warning: This is an experimental feature and could change at any time. To start debugging, open the following URL in Chrome: chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node 

用npm脚本

如果你有一个使用mocha的npmtesting脚本,你可以通过使用选项分隔符末尾来将选项从npm传递给你的mocha脚本:

$ npm test -- --inspect --debug-brk

Chrome提示

而不是每次复制粘贴url,请转到chrome://inspect并单击“远程目标”部分中的相应链接。

更新 :由于nodejs v7.6.0和mocha v3.3.0 ,你可以使用--inspect-brk缩写--inspect --debug-brk

如果安装了节点侦听器,则可以在不实际运行节点检查器的情况下debuggingMochatesting。 最简单的方法是

 node-debug _mocha 

这应该开始在Chrome中debugging节点testing(也适用于Safari)

我看到testing不起作用的一个原因是有时你尝试使用http:// localhost:8080 / debug?port = 5858或http://127.0.0.1:8080/debug?port = 5858

用flag --inspect-brk运行mocha,然后在页面chrome://inspect中点击chrome中的'Open dedicated DevTools for node'。 在专门的DevTools窗口中添加连接localhost:9229来自动连接。

还要将debugger语句添加到要debugging的文件中。

(截至2017年10月,这是使用最新版本的节点和chrome)