我试图unit testing苹果推送通知库时,我有一个全球性的泄漏错误,试图打开一个APN连接。 那是我的configuration错误还是node-apn或mocha中的错误? 我不知道我明白了checkGlobals在做什么…它只是检查是否有全局variables被设置? 0) Feed "before all" hook: Error: global leak detected: hasCert at Runner.checkGlobals (/usr/lib/node_modules/mocha/lib/runner.js:96:21) at Runner.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:41:44) at Runner.emit (events.js:64:17) at /usr/lib/node_modules/mocha/lib/runner.js:159:12 at Hook.run (/usr/lib/node_modules/mocha/lib/runnable.js:114:5) at next (/usr/lib/node_modules/mocha/lib/runner.js:157:10) at Array.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:165:5) at EventEmitter._tickCallback (node.js:126:26)
编辑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使用)是相同的。
我可能会错过一些非常明显的东西,但我不能得到gulp-mocha来捕捉错误,导致我的gulp watch任务结束每次我有一个失败的testing。 这是一个非常简单的设置: gulp.task("watch", ["build"], function () { gulp.watch([paths.scripts, paths.tests], ["test"]); }); gulp.task("test", function() { return gulp.src(paths.tests) .pipe(mocha({ reporter: "spec" }).on("error", gutil.log)); }); 或者,将处理程序放在整个stream上也会产生同样的问题: gulp.task("test", function() { return gulp.src(paths.tests) .pipe(mocha({ reporter: "spec" })) .on("error", gutil.log); }); 我也尝试过使用plumber , combine和gulp-batch无济于事,所以我想我忽略了一些微不足道的东西。 要点: http : //gist.github.com/RoyJacobs/b518ebac117e95ff1457
我正在尝试用摩卡testingJavascript。 我有这段代码: describe('Array', function() { describe('indexOf()', function() { it("dovrebbe tornare -1 quando l'elemento non è presente", function() { expect([1,2,3].indexOf(4)).to.equal(-1) }) }) }) 和一个test/array.js文件。 摩卡被安装了 $ npm install -g mocha 当我跑步 $ mocha 我得到这个错误: $ mocha ․ 0 passing (5ms) 1 failing 1) Array indexOf() dovrebbe tornare -1 quando l'elemento non è presente: ReferenceError: expect is […]
这个问题涉及到NodeJS的Mochatesting框架。 默认行为似乎是开始所有的testing,然后处理asynchronouscallback,因为他们进来。 在运行asynchronoustesting时,我希望在调用之前的asynchronous部分之后运行每个testing。 我怎样才能做到这一点?
当使用mocha和supertest对我的node.js应用程序(基本上是一个REST后端)进行unit testing时,我只需要在屏幕上显示特定于testing的消息,但stdout也与应用程序日志消息混杂在一起。 我开始unit testing: mocha -R spec . …并得到这个输出(这是不应该的): [App] Listening on port 3000 … [App] Starting app, hooray! Project API GET /projects [App] entering "projects" module … √ should return an array of projects (317ms) 我用[App]标记了应用程序日志消息。 我真正想要的是unit testing的输出结果: Project API GET /projects √ should return an array of projects (317ms) 我怎样才能抑制散布摩卡的记者输出应用程序的console.log /警告/错误输出? 解: 按照丹科的方法,我结束了这个,解决了我的问题(使用winston进行logging): […]
这似乎应该是非常简单的; 但是,经过两个小时的阅读和试错,没有成功,我承认失败,问你们! 我正在尝试使用Mocha和Should.js来testing一些JavaScript函数,但是我遇到了范围问题。 我把它简化为最基本的testing用例,但是我无法得到它的工作。 我有一个名为functions.js的文件,它只包含以下内容: function testFunction() { return 1; } 和我的tests.js (位于同一个文件夹中)内容: require('./functions.js') describe('tests', function(){ describe('testFunction', function(){ it('should return 1', function(){ testFunction().should.equal(1); }) }) }) 这个testing失败了一个ReferenceError: testFunction is not defined 。 我可以看到为什么,因为我发现的大多数示例都将对象和函数附加到Node global对象,或者使用module.exports将其module.exports – 但是使用这些方法中的任何一种都意味着我的函数代码会在标准浏览器情况下抛出错误,那些对象不存在。 那么,如何在不使用特定于Node的语法的情况下访问我的testing中单独的脚本文件中声明的独立函数呢?
所以,我正在testing一个依赖事件发生器的组件。 为此,我想出了一个使用Mocha + Chai的承诺的解决scheme: it('should transition with the correct event', (done) => { const cFSM = new CharacterFSM({}, emitter, transitions); let timeout = null; let resolved = false; new Promise((resolve, reject) => { emitter.once('action', resolve); emitter.emit('done', {}); timeout = setTimeout(() => { if (!resolved) { reject('Timedout!'); } clearTimeout(timeout); }, 100); }).then(((state) => { resolved = […]
摩卡和巴贝尔编译器运行伊斯坦布尔时,我有一些问题.. 我所有的testing都运行得很好,但是在完成所有的testing之后,它向我显示了这个信息: No coverage information was collected, exit without writing coverage information 并没有产生任何报道报道.. 我正在运行的命令是: NODE_ENV=test istanbul cover _mocha — –require babel-core/register –recursive 该项目是在github托pipe: https : //github.com/weslleyaraujo/react-flux-puzzle/tree/feat/unit-tests-24 任何想法可能是什么?
http://visionmedia.github.io/mocha/上的文档包含这个例子: describe('User', function(){ describe('#save()', function(){ it('should save without error', function(done){ var user = new User('Luna'); user.save(function(err){ if (err) throw err; done(); }); }) }) }) 我想知道什么时候应该在describe函数中嵌套我的testing, describe的基本目的是什么。 我可以比较第一个用编程语言来describe注释的第一个参数吗? 在控制台的输出中没有显示任何describe 。 这只是为了便于阅读,还是为了这个function还有其他用途? 如果我这样使用,有什么不对吗? describe('User', function(){ describe('#save()', function(){ var user = new User('Luna'); user.save(function(err){ if (err) throw err; done(); }) }) }) 如果我这样做,testing仍然通过。