Articles of 摩卡

Sonarqube没有检测到使用摩卡生成的LCOV报告

我已经创build了一个简单的项目,使用Node.js,mocha生成代码覆盖率和unit testing的报告,如下所示: mocha -R lcov –ui tdd > coverage/coverage.lcov mocha -R xunit –ui tdd > coverage/TEST-all.xml 使用声纳运动员生成的报告并不反映Sonarqube的报道。 使用声纳实例主设备附带的LCOV的样本testingJavaScript项目在Sonarqube中显示0%的代码覆盖率。 声纳的属性如下: sonar.language=js sonar.sourceEncoding=UTF-8 sonar.tests=test sonar.javascript.jstestdriver.reportsPath=coverage sonar.javascript.lcov.reportPath=coverage/coverage.lcov sonar.dynamicAnalysis=reuseReports 期待有关如何解决此问题的投入,并使SonarQube能够报告现有LCOV报告的覆盖范围。 谢谢, 新

使用SailsJS / Node,Mocha,Supertest进行authentication的会话存储

我有一个SailsJS设置,并使用Mocha / Supertest / Superagent组合来运行unit testing。 我search了四周,阅读supertest,现在它如何扩展superagent.agent('url')以存储会话和cookie。 我知道我/运动员/login和/运动员/当前路线正在工作,因为我可以使用邮差testing他们,他们返回正确的值。 然而,在testing时,我在login时获得了200个状态,但是404 /运动员/当前状态 这是我目前的工作: 1.摩卡testinglogin和validation用户login会话 var should = require('should'), assert = require('assert'), request = require('supertest'); it('/athlete/login should return 200 and athlete on success', function (done){ var athleteStub = AthleteStub(), setPassword = athleteStub.password; Athlete.create(athleteStub, function(err, newAthlete) { var user = request.agent(sails.express.app); user .post('/athlete/login') .send({ 'email': athleteStub.email, 'password': setPassword }) […]

覆盖伊斯坦布尔和摩卡/柴的function

我无法理解如何unit testingfunction,以便伊斯坦布尔会考虑它们。 举一个非常简单的例子,我创build了这个math模块: var add = function( one, two ){ return one + two; } module.exports = { add: add }; 和基本的unit testing: var chai = require('chai'); var expect = chai.expect; describe('add() method', function(){ it('should do math', function(){ expect( some.add(1, 1) ).to.equal(2); }); }); 伊斯坦布尔的报告给了我这些结果: 发言:66.67%(2/3) 分支机构:100%(0/0) function:0%(0/1) 行数:66.67%(2/3) 忽略:无 如果简单地testing调用函数的结果不算作覆盖率,那么在unit testing无法访问的函数范围内,如何testing此代码?

删除后再保存mongoose文件

我尝试使用摩卡unit testing我的restify node.js-app并且不嘲笑mongodb数据库。 由于有些testing会改变数据库,所以我想在每次testing之前重置它的内容。 在我的testing中,我也需要访问我正在创build的mongoose文件。 因此我必须在beforeEach钩子之外定义它们(参见下面的user文档)。 但是,清空数据库之后似乎不可能再次保存文档。 下面是我想到的一个简单的例子。 在这种情况下,第二个testing将失败,因为user不会再被保存。 如果我删除了第一个testing, beforeEach只能调用一次,一切都很好。 另外,如果我在beforeEach钩子里面定义user ,它也可以工作。 所以我真正的问题:是否有可能解决这个问题,并删除后保存文件第二次? 或者你有任何其他的想法,我怎么可以在beforeEach钩子内重置数据库? 在每个testing用例之前进行相同的数据库设置的正确方法是什么? var mongoose = require('mongoose') var Schema = mongoose.Schema var should = require('should') var flow = require('async') var UserSchema = new Schema({ username: {type: String, required: true, unique: true}, password: {type: String, required: true}, name: {type: String, default: ''} }) […]

VersionError:仅在(Mocha)testing中发现匹配的文档错误

我已经阅读了其他问题/答案的人有版本的关键,但由于某种原因,我不明白为什么这具体发生在我的情况。 所以我有以下摩卡testing: it('should be able to save one job', function (done) { Promise.join(user.saveAsync(), company.saveAsync(), function (savedUser, savedCompany) { user = savedUser[0]; user.jobs.push(job); user.saveAsync() .spread(function (savedUserWithJob) { user = savedUserWithJob; user.jobs.should.have.length(1); done(); }) .catch(function (err) { done(err); }); }); }); 这一切都很好,并通过。 即使在运行时我也没有任何其他问题。 现在当我尝试在第一个之后再次运行相同的testing时, it('should be able to save one job', function (done) { ….. }); it('should […]

Nightmare.js和代码覆盖率

简洁版本: 我无法从我使用nightmare.js和mocha写的testing中看到代码覆盖率。 到目前为止,我已经尝试过使用伊斯坦布尔和_mocha。 大版本: 我有一个小项目: /public/index.html <html lang="en"> <head> <meta charset="UTF-8"> <title>My Website</title> <script src="./js/hello.js"></script> </head> <body> <h1>My Website</h1> </body> </html> /public/js/hello.js window.hello = function hello(){ return 'world'; }; 该网站使用快递和永远运行。 当我试图使用nightmare.js来testing它。 /test/test.js var path = require('path'); var Nightmare = require('nightmare'); var should = require('should'); /*global describe */ /*global it */ describe('Simple demo', function () { […]

“没有听众检测到”validation错误mongoose和摩卡

我正在尝试为我的快速应用程序的POST函数设置unit testing。 我有以下两个领域简单的mongoose纲要,其中一个是必需的。 当我在validation/必填字段closures的情况下进行摩卡testing时,testing是正确的,但是当所需设置为true时,testing失败,出现以下错误: Uncaught: No listeners detected, throwing. Consider adding an error listener to your connection. ValidationError: Path 'title' is required 有任何想法吗? 正如你所看到的,我肯定已经满足了模式要求,并且包含了标题字段。 这里是我的testing下面:有趣的是,第一个testing似乎工作正常,只有当我试图发布,它会产生错误。 describe('Add one story to:\n\thttp://localhost:XXXX/api/stories', function () { var testStory = new Story( { title: 'Mocha C title', shortTitle: 'Mocha C shortTitle' } ); describe('Story object', function(){ describe('Save story object', function(){ […]

运行node.js mochatesting时意外的令牌ILLEGAL

我已经搜遍了,但还没有弄清楚我做错了什么。 我正在尝试设置mocha来testingnode.js javascript应用程序文件。 我已经安装了节点,并已成功运行基本的东西,以确认它正在工作。 我在我的项目文件中安装了摩卡,在我的项目文件中也有一个名为“test”的Makefile和一个文件。 这是当我运行命令“make test”时,我的terminal(osx 10)吐出的错误。 humbleMousesMBP:chapter02 humbleMouse$ make test /Users/humbleMouse/chapter02/test/exchange.test.js:22  ^ SyntaxError: Unexpected token ILLEGAL at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at /Users/humbleMouse/chapter02/node_modules/mocha/bin/_mocha:313:27 at Array.forEach (native) at load (/Users/humbleMouse/chapter02/node_modules/mocha/bin/_mocha:310:9) at Object.<anonymous> (/Users/humbleMouse/chapter02/node_modules/mocha /bin/_mocha:301:1) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) […]

对同一个幻象实例使用createPage()两次

我试图用PhantomJS设置摩卡testing,而且我遇到了一个问题,我无法使用相同的幻像实例来创build多个页面。 第一个testing用例运行得很好,但第二个testing用例运行良好。 我只想使用一个实例,因为它应该更快。 var assert = require('assert'); var phantom = require('phantom'); var path = require('path'); var ph; describe('document', function() { before(function(done) { // Create only one phantom instance for the whole suite this.timeout(10000); // Prevent test case from aborting while phantom loads phantom.create(function(p) { ph = p; done(); }, { dnodeOpts: {weak: false} }); }); […]

如何通过摩卡testing两个文件是否相同

我已经编写了一个node.js脚本,用于扫描非常大的遗留代码库并应用一组更改。 这些更改可能相当复杂,因为这会影响某些存储机制和相关的大小定义。 我已经写了testing,所有的计算和报告是正确的,使用摩卡,柴和sinon。 “ 现在我正在尝试编写一个testing,将更改应用到传统源的20个样本。 我可以使用正确的更改创build20个样本的版本,我只是希望我的testing将所应用的更改与预测的更改进行比较。 所以实质上,testing是文件A和文件B之间的差异,其结果应该是文件是相同的。 Google在数组,string和对象差异上显示了很多结果。 有没有人有解决scheme如何做到这一点的文件? 我应该注意到,我并不是试图重新发明轮子。 我已经用prettydiff了一些prettydiff ,其中包括: prettydiff({source: processedFile, diff: expectedFile, lang: 'text'}).should.equal("Number of differences: 0 differences from 0 lines of text."); 我也试过: expect(prettydiff({source: processedFile, diff: expectedFile, lang: 'text'})).to.equal("Number of differences: 0 differences from 0 lines of text."); 然而,我在这两种情况下得到一个错误,说明Uncaught TypeError: object is not a function 。 使用摩卡testing两个文件的差异的正确方法是什么?