debugging摩卡testing的阻力最小的path是什么?
编辑2016年11月:节点现在有一个内置的debugging器,你可以开始 – --inspect
。 这个答案解释它: https : //stackoverflow.com/a/39901169/30946 。
我正在用咖啡标记build立一个摩卡testing。 在testing的顶部,我有:
require "../assets/js/theObject.coffee" debugger ss = new TheObject()
我想在该debugging器行停止,因为theObject.coffee
的对象没有被加载。 我正在使用节点检查器,它工作,sorta。
我拥有的过程是:
- 启动节点检查器
- 在命令行运行testing –
mocha --compilers coffee:coffee-script ./test/theObjectTests.coffee --ui bdd -d --debug-brk
- 转到节点检查器页面,如果它已经打开,则刷新它
- 等待文件
theObject.coffee
被加载,然后在正确的行上放置一个断点
必须有一个更简单的方法。 看起来我应该能够运行一个debugging器,并停止在该debugging器线上,但我无法find它。
我有WebStorm,它有一个debugging器( 本文讨论设置它来运行摩卡testing,但它没有帮助我),但是当我启动它,它失败。 在WebStormdebugging窗口中运行的命令是:
"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的问题。
Env:Windows 7,Webstorm,节点0.8.16,摩卡1.7.4,git-bash
问题是:如果你从头开始使用Mocha,debugging器最简单的方法是什么? 易于在这里的关键字。
编辑:因为问这个我已经停止使用Windows,并在Ubuntu工作。 我的摩卡debugging过程(我很less使用)是相同的。
编辑,几年之后 :Node 6+中的最短path是: mocha --debug-brk --inspect ./test.js
加上Node Inspector Manager插件。
几个星期后,没有答案。 这是我find的最快捷的path。
- 写摩卡testing
- 安装
node-inspector
- 启动
node-inspector
– 它现在将在5858上进行监听 - 用
--debug-brk
开始摩卡testing - 在这一点上,摩卡testing暂停在第一行
- 打开Web浏览器并转到localhost:5858
- (可选:在testing文件的顶部添加一个debugging器行,在该文件停止之后设置断点)
- 按F10来获得代码
- 节点检查器将在任何有
debugger
行上停止。 有时它不会将代码文件的窗口移动到正确的位置,所以您必须按F10才能进入下一行,并显示它在文件中的位置。
命令行:
node-inspector & mocha --compilers coffee:coffee-script/register ./test/appTests.coffee --ui bdd -d -g "should X then Y" --debug-brk
除了上面的@ jcollum的回答,我发现不是使用–debug-brk标志,而是使用–debug标志和-w(watch)
这样,当你从你的代码中添加和删除debugging器行时,mocha会自动重新加载testing,你的节点检查器将在适当的行上暂停。
这节省了不得不重新访问terminal不断地重新开始testing,然后不必要地在debugging器中点击“继续”以通过源的第一行。
使用最新版本的Mocha和节点检查器 ,这对我来说非常有用:
$ node-debug ./node_modules/mocha/bin/_mocha
它将加载本地的Mocha可执行文件作为debugging过程,在第一行停止设置断点。
使用WebStorm节点debugging器的替代方法。
简而言之:
- 你需要WebStorm
- 在WebStorm中创build新的节点debuggingconfiguration文件
- 设置你的摩卡二进制
Path to Node App JS File
- 添加断点并从WebStorm启动会话
Glenn Block的屏幕截图详细说明 。
请loginhttp://sa.github.io/iron-node/ 。 这是debuggingNode.js相关的最有效的软件。
$ iron-node ./node_modules/mocha/bin/_mocha
如果它是一个Node应用程序,那么从命令行使用集成的Nodedebugging器是最快的明星之路:
$ mocha $args -- debug
现在在Webstorm中,您可以使用mocha
configuration进行设置。 对我来说,开箱即用:
Node interpreter: /usr/local/bin/node Working directory: /Users/me/sites/mysite Mocha Package: /Users/me/sites/mysite/node_modules/mocha
接着
All in directory Test directory: /Users/me/sites/mysite/test
它还会显示它运行的参数,所以如果需要的话,你可以将它们复制到另一个环境中。
关于Webstorm或PhpStorm,您可以添加一个特定的mochadebuggingconfiguration:
你必须通过绿色添加,你可以给它一个名字。
如果项目中已经安装了摩卡,通过:
npm install mocha --save
要么
yarn add mocha
它会在你的项目中find相应的模块。
我必须提供正确的path到我的unit testing,并击中Include subdirectories
/
由于我的项目是一个打字稿,我不得不补充:
yarn add ts-node
对于一个纯粹的js项目来说,这不是必须的。
现在,您可以运行整个testing服务,然后您可以从列表中select单个testing用例,然后运行它们并自行进行debugging。
现有的答案都没有提到阻力最小的path :当您需要debugging摩卡testing时,您可以简单地添加另一个检查您想要debugging的值的断言 。
myVar.should.equal(expected);
我发现这往往是我所需要的。 我只是删除了当我完成时用于debugging的额外断言。
一个现代化的方法是使用nodejs的检查器集成function 。 这相当简单的使用。 我已经在这篇文章中详细解释了如何使用它
- 柴的主张,期望和应该有什么区别?
- 用Mochatestingjavascript – 我如何使用console.log来debuggingtesting?
- 你如何安装和运行Mocha,Node.jstesting模块? 安装后得到“mocha:command not found”
- 描述摩卡咖啡的作用是什么?
- 我如何正确地testing摩卡和柴的承诺?
- 如何从node.js中的一个“npm test”命令运行mocha和mocha-phantomjstesting?
- 用mocha的–debug-brk开关启用节点debugging器的正确方法是什么?
- 如何用RSpec / RoRtestingAJAX请求?
- mocha before()中的asynchronous函数在it()spec之前完成了吗?