用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)