Tag: 摩卡

如何获得伊斯坦布尔与Sails.js 0.10.x?

我正在尝试使用Sails.js 0.10.x应用程序来获得伊斯坦布尔代码覆盖工具。 我看到http://blog.sergiocruz.me/unit-test-sailsjs-with-mocha-and-instanbul-for-code-coverage/,但是这个使用了0.9.x,并且在0.10.x之后执行了相同的步骤,由于对Grunt设置的更改而工作。 我试图调整它如下: tasks/config/istanbulCoverage.js : module.exports = function (grunt) { grunt.config.set('mocha_istanbul', { coverage: { src: 'test', options: { coverageFolder: 'coverage', mask: '**/*.spec.js', root: 'api/' } } }); grunt.loadNpmTasks('grunt-mocha-istanbul'); }; tasks/register/coverage.js : module.exports = function (grunt) { grunt.registerTask('coverage', [ 'mocha_istanbul:coverage' ]); }; 但是这只会导致/coverage目录被创build,但是没有创build文件。 没有错误消息,所有的testing都通过了,除了没有创build覆盖报告外,一切看起来都很好。 任何人都知道什么是错的? 如果有问题,我在Windows上,但稍后会尝试* nix虚拟机。

testingchild_process.exec导致flakeytesting…为什么?

Flakeytesting 我正在编写一个黄瓜世界模块的unit testing。 该模块似乎正在工作,它作为一个child_process启动快速应用程序,并通过杀死subprocess停止应用程序。 问题是这个模块的摩卡testing是flakey,它每隔一段时间都会通过,而且每隔一段时间都会失败。 我似乎无法弄清楚为什么。 我怎样才能为每一次通过的世界文件写一个testing? 黄瓜世界文件 var zombie = require('zombie'); var cp = require('child_process'); var World = function World(callback) { this.browser = new zombie(); callback(this); }; World.prototype.start = function (callback) { console.log("Starting Express App"); this.app = cp.exec('node ./bin/www'); console.log("Express App Started"); if (callback) callback(); }; World.prototype.stop = function (callback) { this.app.on('close', function () […]

在没有CLI的情况下使用摩卡ia Nodejs-App

我想在节点应用程序whitout CLI中使用Mocha(JS Testing)。 如果我做: var mocha = require('mocha'); var test = new mocha(); test.run(function(err){ if(err){ console.log("Found error"); } }); 我得到摩卡运行。 但是,我怎么可以添加一个testing? 我需要这样的东西: var testcase = { before: function(){}, 'Array': { '#indexOf()': { 'should return -1 when not present': function(){ [1,2,3].indexOf(4).should.equal(-1); } } } }; test.USE(testcase);

强制npmtesting来创build新的\新的input副本

test/ ├── TestOne.js └── TestTwo.js 说, TestOne.js是: 这个testing用例从InputOne.json文件中读取, InputOne.json已有3条logging的对象添加一条logging。 describe('Add Items', function () { it('Should add items', function () { var input = require('./data/InputOne'); var obj = new Department(); var result = obj.AddDept(input); result.should.have.length(4); }); }); 说, TestTwo.js是: 这个testing用例从文件InputOne.json读取并计算元素的数量 describe('Count Items', function () { it('Should count items length', function () { var input = require('./data/InputOne'); […]

testing风帆控制器

我试图testing我的帆控制器。 但是当我在我的UserController.test.js中使用这一行代码,它抛出一个错误不能调用undefined var app = sails.hooks.http.app 在bootstrap.test.js中,我已经声明了这样的风帆 var sails = require('sails') before(function(done){ Sails.lift({},function(err,sails){ done(err, sails); }) }) PS:我已经检查,sails.hooks工作正常,只有在调用http方法它给我这个错误。 我正在关注这个链接进行testing。 帆testing

passportjs,摩卡,超级ECONNREFUSED

我正在尝试使用摩卡,超级terminal和护照进行身份validation,但是我收到拒绝连接的错误消息。 我认为这与我开始我的应用程序的方式… var testUser = { "email": "test@test.com", "password": "test" }; var app = require('../../server'); var request = require('superagent'); var user = request.agent(app); describe('authentication api ', function() { it('should login a user', function(done) { user.post('/login') .send(testUser) .end(function(err, res) { if(err) throw err; done(); }); }); }); 这个用户确实存在于我的mongo数据库中。 在我的服务器文件,这是更高的两个层次: module.exports = app.listen(port, function() { console.log('app listening […]

我怎样才能重复使用摩卡testing,所以我不必重复自己?

我试图在摩卡书写一些testing,我将通过BrowserStack在几个浏览器中自动化。 而不是重复每个浏览器的test.it代码,我想保持我的代码DRY并包装几个test.it块在一个函数中,只是调用test.describe内的test.describe ,像这样(实际的testing细节是不重要的); function runTests(driver) { test.it('form works', function() { var result = testForm(driver, '#formId', 'test@test.com'); return 'Expected Result' === result; }); } test.describe('Tests for IE 9', function() { var driver; test.before(function() { var capabilities = { 'browser' : 'IE', 'browser_version' : '9.0' }; driver = setupDriver(capabilities); }); runTests(driver); test.after(function() { driver.quit(); }); }); test.describe('Tests […]

在Mocha中依次运行两个不同的testing文件

我有两个自己的描述块的testing文件。 在每个描述块中,存在操纵mongoose模式的块(由两个文件共享)之前。 有没有办法顺序运行这两个testing文件,以便一个文件的“之前”不阻止另一个文件的testing。

当使用JavaScriptdynamic加载页面内容时,使用Mocha + Zombie.js进行验收testing

我有一个问题,我一直在寻找解决scheme。 我有一个页面(快速应用程序),它有一个div#内容。 起初,它没有任何内容。 在页面加载时,调用JavaScript函数来确定用户是否已经login。如果不是,则在div#内容中填充login表单。 否则,用户configuration文件将显示在同一个div中。 这个程序是一个单页的应用程序。 所有的操作都由Ajax处理。 大部分内容也是dynamic生成的。 现在,我正在尝试用Mocha和Zombie.js写一些validationtesting。 但是,即使是这样一个简单的testing也不会通过: assert.equal(this.browser.text('div#content h1'), 'Login'); ..因为div#内容是空的。 我只是想知道是否有办法让所有dynamic填充内容的页面。 我尝试了browser.html(),将debug设置为true,将runScripts设置为true,对div#内容使用browser.wait(),以及许多其他方法,但是无法使其工作。 任何帮助将不胜感激。 谢谢!

如何将摩卡testing与摩卡幻影testing相结合

testing用例: 服务器/ appTest.js 客户/ clientTest.js clientBundle.js clientTest.html 都是摩卡testing。 对于客户端testing,我使用sinon,并使用它们来生成一个包 – clientBundle.js并使用mocha-phantomjs进行无头testing。 现在我已经将npm test定义为mocha test/server && mocha-phantomjs test/clientTest.html 。 它给我两个分别的结果。 我怎么能把它们合并成一个 – 比如说mocha test/all.js 在test/all.js里面试过require()s 。 mocha-phantomjs不能用作节点内的库。 它只能用作CLI。