我在我的测试模块中有一些调试器语句,我想用--debug-brk
set 运行 mocha 并点击我的断点,以便我可以检查我的模块的状态。不幸的是,每当我使用此选项运行 mocha 时,下一行都会出现空白光标。我可以输入文本,但似乎没有任何东西在处理我的命令(它肯定不像节点调试器):
$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]
我在启动摩卡咖啡的方式上做错了吗?
我在我的测试模块中有一些调试器语句,我想用--debug-brk
set 运行 mocha 并点击我的断点,以便我可以检查我的模块的状态。不幸的是,每当我使用此选项运行 mocha 时,下一行都会出现空白光标。我可以输入文本,但似乎没有任何东西在处理我的命令(它肯定不像节点调试器):
$ mocha --debug-brk tests.js -R spec
debugger listening on port 5858
[BLANK CURSOR]
我在启动摩卡咖啡的方式上做错了吗?
使用最新版本的 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
使用 npm 脚本
如果你有一个使用 mocha 的 npm 测试脚本,你可以通过使用end of option delimiter --
将选项从 npm 传递到你的 mocha 脚本:
$ npm test -- --inspect --debug-brk
镀铬笔尖
不要每次都复制粘贴网址,而是转到chrome://inspect
并单击“远程目标”部分中的相应链接。
要回答最初的问题,即使我也建议您研究一下:您可以使用带有选项的node-inspector
mocha 内置在 node 中的 CLI 调试器,而不是or标志。(注意没有破折号。)debug
--debug
--debug-brk
相反,在您的示例中,它将是:
$ mocha debug tests.js -R 规范 侦听端口 5858 的调试器 连接...好的 中断 node_modules/mocha/bin/_mocha:7 5 */ 6 7 var program = require('commander') 8、sprintf = require('util').format 9、路径=需要('路径') 调试> [光标]
同样,debug
如上粗体,没有破折号。(=
我能够使用node-inspector 让它工作。我像你在一个 shell 中显示的那样运行我的测试:
mocha --debug-brk mocha/test.js
然后在第二个 shell 中运行 node-inspector:
node-inspector
调出 node-inspector 在浏览器中显示的 URL 允许我使用 Web 检查器进行调试。
http://127.0.0.1:8080/debug?port=5858
如果你安装了 node-inspector,你可以调试你的 Mocha 测试,而无需先实际运行 node-inspector。最简单的方法是
node-debug _mocha
这应该开始在 chrome 中调试节点测试(也适用于 Safari)
我看到测试不起作用的一个原因是有时您尝试使用http://localhost:8080/debug?port=5858或http://127.0.0.1:8080/debug?port=5858
运行带有标志的 mocha--inspect-brk
并在页面中单击 chrome 中的“open dedicated DevTools for node” chrome://inspect
。在专用的 DevTools 窗口中添加连接localhost:9229
以自动连接。
debugger
还要在要调试的文件中添加一条语句。
(这是使用截至 2017 年 10 月的最新版本的 node 和 chrome)