2016年11月编辑:Node现在有一个内置调试器,您可以从--inspect
开始。这个答案解释了它:https://stackoverflow.com/a/39901169/30946。
我正在用coffeescript建立一个摩卡测试。在测试的顶部,我有:
require "../assets/js/theObject.coffee"
debugger
ss = new TheObject()
我想停在那个调试器行上,因为theObject.coffee
中的对象没有被加载。我正在使用节点检查器,它可以工作,sorta。
我的过程是:
mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
theObject.coffee
,然后在正确的行上放置一个断点必须有一种更简单的方法。看起来我应该能够运行一个调试器并让它停在那个调试器行上,但我无法找到它。
我有WebStorm,它有一个调试器(this article discusses设置它来运行mocha测试,但它没有帮助我),但是当我启动它时,它失败了。在WebStorm调试窗口中运行的命令是:
"C:\Program Files\nodejs\node.exe" --debug-brk=64232 C:\Users\jcollum\AppData\Roaming\npm\_mocha
C:\Users\jcollum\AppData\Roaming\npm\_mocha:2
basedir=`dirname "$0"`
我怀疑这可能是Windows特定的问题。
环境:Windows 7,Webstorm,节点0.8.16,摩卡1.7.4,git-bash
问题:如果你是从头开始使用Mocha,那么调试器的最简单方法是什么才能轻松停在调试器线上?这里的关键字很简单。
编辑:因为问这个我已经停止使用Windows并且正在使用Ubuntu。我的mocha调试过程(我不经常使用)是一样的。
答案 0 :(得分:60)
编辑,多年后:节点6+中的最短路径是:mocha --debug-brk --inspect ./test.js
与Node Inspector Manager插件相结合。
许多周后,没有答案。这是我找到的最快的路径。
node-inspector
node-inspector
- 它现在将在5858 --debug-brk
debugger
的行上。有时它不会将代码文件的窗口移动到正确的位置,因此您必须按F10才能使其前进到下一行并显示文件中的位置。 命令行:
node-inspector & mocha --compilers coffee:coffee-script/register ./test/appTests.coffee --ui bdd -d -g "should X then Y" --debug-brk
答案 1 :(得分:11)
除了@ jcollum上面的回答,我发现不使用--debug-brk标志,最好只使用带-w(watch)的--debug标志
这样,当您从代码中添加和删除调试器行时,mocha将自动重新加载测试,并且您的节点检查器将在相应的行上暂停。
这节省了不得不重新访问终端不断重启测试,然后不必要地在调试器中“继续”以超过源的第一行。
答案 2 :(得分:8)
使用最新版本的Mocha和node-inspector,这对我来说非常有用:
$ node-debug ./node_modules/mocha/bin/_mocha
它将本地Mocha可执行文件作为调试进程加载,在第一行停止为您设置断点。
答案 3 :(得分:6)
答案 4 :(得分:5)
使用WebStorm节点调试器的替代方法。
简而言之:
Path to Node App JS File
Detailed instruction,其中包含Glenn Block的截图。
答案 5 :(得分:3)
如果它是一个Node应用程序,那么从命令行使用集成的Node调试器是明星的最快捷途径:
$ mocha $args -- debug
答案 6 :(得分:1)
现在,您可以在Webstorm中使用AD_CUSTOMIZERS_FEED_ITEM_REPORT
配置进行设置。对我来说,开箱即用:
mocha
然后
Node interpreter: /usr/local/bin/node
Working directory: /Users/me/sites/mysite
Mocha Package: /Users/me/sites/mysite/node_modules/mocha
它还会显示它运行的参数,因此如果需要,您可以将它们复制到另一个环境。
答案 7 :(得分:1)
对于Webstorm或PhpStorm,您可以添加特定的mocha调试配置:
你必须通过绿色添加,你可能会给它起一个名字。
如果项目中已安装的mocha通过:
npm install mocha --save
或
yarn add mocha
它会在你的项目中找到相应的模块。
我必须为我的单元测试提供正确的路径,然后点击Include subdirectories
/
由于我的项目是打字稿,我不得不添加:
yarn add ts-node
对于纯粹的js项目,它不应该是必要的。
现在您可以运行整个测试套件,然后您可以从列表中选择单个测试用例并运行它们并自行调试它们。
答案 8 :(得分:0)
现有的答案都没有提到最小阻力路径:当您需要调试Mocha测试时,您可以简单地添加另一个断言来检查您要调试的值< / strong>即可。
myVar.should.equal(expected);
我发现这通常都是我需要的。我刚刚删除了用于调试的额外断言。
答案 9 :(得分:0)
现代的方法是使用nodejs的inspector integration feature。它使用起来相当简单。我已经在this post
中详细解释了如何使用它