How*_*ing 68 javascript-events mocha.js node.js
我在我的测试模块中有一些调试器语句,并希望运行mocha并设置--debug-brk并点击我的断点,以便我可以检查模块的状态.不幸的是,每当我用这个选项运行mocha时,我最后会在下一行显示一个空白光标.我可以输入文本,但似乎没有任何东西可以处理我的命令(它当然不像节点调试器):
$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]
Run Code Online (Sandbox Code Playgroud)
我是如何推出摩卡咖啡的?
str*_*tek 60
使用最新版本的nodejs(> = v6.3.0)和mocha(> = 3.1.0),可以使用V8检查器集成.
V8 Inspector集成允许将Chrome DevTools附加到Node.js实例以进行调试和分析
用法
--inspect
激活V8检查器集成,并--debug-brk
在开头添加断点.从nodejs v7.6.0和mocha v3.3.0开始,您可以使用--inspect-brk
简写--inspect --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
Run Code Online (Sandbox Code Playgroud)
使用npm脚本
如果你有一个使用mocha的npm测试脚本,你可以使用选项分隔符 的结尾将选项从npm传递到你的mocha脚本--
:
$ npm test -- --inspect --debug-brk
Chrome提示
不是每次都复制粘贴网址,而是转到chrome://inspect
并单击"远程目标"部分中的相应链接.
Mat*_*ley 51
我能够使用node-inspector使其工作.我像你在一个shell中显示的那样运行我的测试:
mocha --debug-brk mocha/test.js
Run Code Online (Sandbox Code Playgroud)
然后在第二个shell中运行node-inspector:
node-inspector
Run Code Online (Sandbox Code Playgroud)
在浏览器中显示node-inspector吐出的URL允许我使用Web检查器进行调试.
http://127.0.0.1:8080/debug?port=5858
Run Code Online (Sandbox Code Playgroud)
ELL*_*BLE 50
要回答原始问题,即使我还建议你研究一下node-inspector
:你可以通过mocha使用内置到节点中的CLI调试器debug
,而不是--debug
或者--debug-brk
标志.(注意缺少破折号.)
在您的示例中,它将是:
$ mocha debug tests.js -R spec debugger listening on port 5858 connecting... ok break in node_modules/mocha/bin/_mocha:7 5 */ 6 7 var program = require('commander') 8 , sprintf = require('util').format 9 , path = require('path') debug> [CURSOR]
再次,debug
如上面的粗体,没有破折号.(=
相关:https://github.com/visionmedia/mocha/issues/247
小智 10
如果安装了node-insector,则可以调试Mocha测试,而无需先实际运行node-inspector.最简单的方法是
node-debug _mocha
Run Code Online (Sandbox Code Playgroud)
那应该开始调试chrome中的节点测试(也适用于Safari)
我看到测试不起作用的一个原因有时是你试试http:// localhost:8080/debug?port = 5858或http://127.0.0.1:8080/debug?port=5858
使用 flag 运行 mocha --inspect-brk
,然后在 chrome 页面中单击“打开专用于节点的 DevTools” chrome://inspect
。在专用的 DevTools 窗口中添加连接localhost:9229
以自动连接。
还要debugger
向要调试的文件添加一条语句。
(这是使用截至 2017 年 10 月最新版本的 Node 和 Chrome)
归档时间: |
|
查看次数: |
40114 次 |
最近记录: |