Articles of 摩卡

如何使用Jasmine 2在jasmine.json中设置源文件

我发现Jasmine 2.4的页面testingnode.js文件 ,它甚至提到在spec / support / jasmine.json文件中设置spec 和源文件。 但是在线的例子和 jasmine examples都没有显示如何告诉茉莉花在哪里find源文件。 所以我不断得到ReferenceErrors,因为它似乎没有阅读我的源文件。 应该指出的是,现在我只是用它来教一些学生关于testing,并使用他们的单一文件玩具项目进行实践。 (就像一个CLI Hang子手游戏那样。)所以现在没有module.exports正在进行,虽然他们的一些项目使用require()来引入第三方模块。 我一直在使用Karma,直到我意识到这只是为了浏览器的JavaScript,并require保持失败。 编辑:我刚刚发现这个post基本上是一样的东西,但我不想用咕噜只是让茉莉花读取源文件。 看起来像应该内置的东西,就像Karma要求你的源文件和spec文件在哪里一样。 第二编辑:我不应该把这个放在这里,但是Emarco把我的问题标记为我在上面的第一个编辑中链接的一个副本, 尽pipe我非常具体地解释了为什么另一个post不能回答我的问题。

列出所有的摩卡testing而不执行它们

有没有办法让mochajs列出所有由test runner收集的testing而不执行它们? 例如,如果有这样的规格: describe('First', function() { it('should test something', function() { … }) }); describe('Second', function() { it('should test something else', function() { … }) }); 那么我想要得到与testinglogging器产生的输出相似的控制台输出,但不执行实际testing,如下所示: First should test something Second should test something else UPD: 目前我正在提取所有describe和it与正则expression式,但寻找一个更干净的解决scheme。

在多个文件中分割摩卡APItesting

我正在为我正在构build的产品build立一些APItesting。 其中一个testing看起来像这样: GET FILTERS ✓ should be restricted (45ms) it should get the filters ✓ should return 200 ✓ should return an object ✓ should close db connections GET USERS COUNT ✓ should be restricted ✓ should throw error when payload is not correct it should get the user count ✓ should return 200 ✓ […]

用节点检查器debugging远程mocha.jstesting?

我有一个远程计算机上的testing文件,我想通过node-inspector走过它。 所以,在远程机器上( Vagrantfile ): node-inspector & mocha –debug-brk foo.test.js 然后,在我的开发机器上,我打开金丝雀,然后去: http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858 但是,我无法debugging我的testing,因为debugging器将在node_modules/mocha/bin/_mocha的第一行node_modules/mocha/bin/_mocha ,而我的testing文件在Sources选项卡中不可见 : 我试着在398行的 _mocha里设置一个断点: runner = mocha.run(program.exit ? exit : exitLater); 但是,当我尝试“进入”,看到runfunction执行,它不介入。我可以看到控制台中的输出,所以它虽然执行。 如果我直接在run函数中设置断点,它不会在那里破坏。 此外, testing文件从不出现在“Sources”选项卡中,因此我无法在其中设置断点。 我也尝试添加一个debugger语句,但它仍然没有在那里打破。 我怎样才能让节点检查员显示testing文件,并通过它? node v0.12.0 node-inspector v0.10.0 mocha v2.2.4

摩卡supertest ECONNRESET

我正在用Mocha和SupertesttestingNodejs服务器。 testing套件已经发展到1500多个testing。 突然之间,虽然所有的testing代码仍然有效,但是我的testing套件却失败了,并报错: { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' } 如果我注释掉一些先前运行的testing,导致错误更改的testing。 什么导致这种精神错乱?

节点(Gulp)process.stdout.write到文件

我正在尝试为我进行unit testing,并将testing覆盖率输出到.lcov文件。 这是我迄今为止: gulp.task('test', function () { var test = fs.createWriteStream('./test.lcov', {flags: 'a'}); return gulp.src('./assets/js/test/test.js', {read: false}) .pipe(mocha({reporter: 'mocha-lcov-reporter'})) .pipe(test); }); mocha-lcov-reporter代码可以在这里find: https : //github.com/StevenLooman/mocha-lcov-reporter/blob/master/lib/lcov.js 它通过process.stdout.write()输出结果 但是,当我pipe这个到一个WriteStream我有以下错误: TypeError: Invalid non-string/buffer chunk at validChunk (_stream_writable.js:152:14) at WriteStream.Writable.write (_stream_writable.js:181:12) at Stream.ondata (stream.js:51:26) at Stream.emit (events.js:95:17) at drain (/Users/braunromain/Documents/dev/should-i-go/node_modules/gulp-mocha/node_modules/through/index.js:36:16) at Stream.stream.queue.stream.push (/Users/braunromain/Documents/dev/should-i-go/node_modules/gulp-mocha/node_modules/through/index.js:45:5) at Stream.stream (/Users/braunromain/Documents/dev/should-i-go/node_modules/gulp-mocha/index.js:27:8) at Stream.stream.write (/Users/braunromain/Documents/dev/should-i-go/node_modules/gulp-mocha/node_modules/through/index.js:26:11) […]

如何忽略伊斯坦布尔覆盖范围内node.js中的所需文件

在我的代码中,我有var es = require('event-stream'); 在我的package.json中,我有 "scripts": { "test": "istanbul cover ./node_modules/mocha/bin/_mocha — -R spec", } 我只想覆盖我的主文件,但它也涵盖事件stream的文件,所以我得到的东西 =============================== Coverage summary =============================== Statements : 24.74% ( 757/3060 ) Branches : 5.42% ( 88/1625 ) Functions : 15.56% ( 70/450 ) Lines : 25.37% ( 735/2897 ) ================================================================================ 有没有办法只覆盖我自己的代码?

如果testing失败,如何让Mocha在源文件中显示正确的行号?

我正在使用Mocha进行NodeJStesting,当由于源代码抛出错误而导致testing失败时(例如“ TypeError: Cannot read property 'prop' of null ”),显示的堆栈跟踪中的行号是错误的(它们与原始源文件不匹配,但是更大)。 1) MyApp should do something: TypeError: Cannot read property 'prop' of null at MyApp.<anonymous> (/path/to/my-project/lib/my-project.js:515:93) at MyApp.build (/path/to/my-project/lib/my-project.js:774:16) at Context.<anonymous> (/path/to/my-project/test/test.js:62:67) at Test.Runnable.run (/path/to/my-project/node_modules/mocha/lib/runnable.js:216:15) at Runner.runTest (/path/to/my-project/node_modules/mocha/lib/runner.js:373:10) at /path/to/my-project/node_modules/mocha/lib/runner.js:451:12 at next (/path/to/my-project/node_modules/mocha/lib/runner.js:298:14) at /path/to/my-project/node_modules/mocha/lib/runner.js:308:7 at next (/path/to/my-project/node_modules/mocha/lib/runner.js:246:23) at Object._onImmediate (/path/to/my-project/node_modules/mocha/lib/runner.js:275:5) at processImmediate [as _immediateCallback] (timers.js:330:15) (这里my-project.js只有279行!) […]

testing一个函数与Mocha调用另一个函数

我有一个关于在Mocha中testingNode.js的具体情况的问题。 假设我在我的应用程序中有以下代码… function a() { //… } function b() { //… } function c() { if(condition) { a(); } else { b(); } } 如果我正在testing函数c,我怎么能确认函数a或函数b被调用? 有没有办法做到这一点?

在Mocha中描述()是什么

我正在试着用摩卡弄脏我的双手,这里是我从文档中看到的例子: var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) }) 大多数例子显示了第二个描述语句 describe('#indexOf()', function(){ 从#indexOf() #开始。 这个#的意义是什么? 为什么这不能简单地写成indexOf ? 我在哪里可以得到对描述如何工作的基本理解? PS:我查看了http://visionmedia.github.io/mocha/#interfaces的文档,但无法弄清楚这些是如何进入画面的,以及这些接口是如何处理的。 谢谢