伊斯坦布尔封面报告对于使用 mocha 进行测试是错误的(使用 Mongoose)
Posted
技术标签:
【中文标题】伊斯坦布尔封面报告对于使用 mocha 进行测试是错误的(使用 Mongoose)【英文标题】:Istanbul cover report is wrong for test with mocha (using Mongoose) 【发布时间】:2014-07-17 06:15:05 【问题描述】:我已尝试在伊斯坦布尔为我的应用程序进行掩护测试。一切似乎都工作正常,但有些方法被标记为未涵盖,我确信(因为日志)这些功能已涵盖。 这是我要测试的代码(使用 Mongoose):
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
function BaseSchema(objectName, schema)
// !!! Marke as not covered
log.trace('BaseSchema CTOR : objectName=%s schema=%s', objectName, schema);
Schema.apply(this, [schema]);
...
this.statics.removeAll = function (cb)
// !!! marked as not covered
log.debug('Calling %s.removeAll', this._objectName);
this.remove(, cb);
;
...
util.inherits(BaseSchema, Schema);
还有我的测试课:
describe('Advanced CRUD Account :', function ()
it('Should remove all', function (done)
account = new Account(
email: 'testu@test.com',
pseudo: 'Testu'
);
Account.removeAll(function ()
done();
);
);
我看到了日志,所以我确定该方法调用得当。
我用这个命令运行封面测试:
istanbul cover node_modules/mocha/bin/_mocha -- -r server.js -R spec test/mocha/**/*.js packages/**/mocha/**/*.js
任何线索将不胜感激。
JM.
【问题讨论】:
【参考方案1】:我有类似的问题,我已经设法使它工作使用 Istanbul middleware,按照他们页面上的说明进行操作。
在我的脚本部分的 package.json 中,我添加了
"test": "./node_modules/istanbul/lib/cli.js cover ./node_modules/.bin/_mocha ./test/*.js -- --recursive -R spec -r should"
运行测试后,我可以看到结果
http://localhost:<PORT>/coverage
希望这会有所帮助。
【讨论】:
没有。我找到了任何解决方案。以上是关于伊斯坦布尔封面报告对于使用 mocha 进行测试是错误的(使用 Mongoose)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Mocha 进行测试:基于 Promise 的测试不会自行运行?