伊斯坦布尔封面报告对于使用 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 不报告每次测试的时间?

使用 Mocha 进行测试:基于 Promise 的测试不会自行运行?

使用 Mocha 和伊斯坦布尔生成覆盖范围

Mocha - Chai Unit Terst 报告生成 - NodeJS

如何在 vs 代码中使用 mocha 生成覆盖率报告?

使用mocha测试