使用摩卡测试伊斯坦布尔封面报告是错误的(使用猫鼬)

时间:2014-05-28 06:48:42

标签: node.js mongoose mocha istanbul

我已经尝试伊斯坦布尔为我的申请进行封面测试。一切似乎工作正常,但有些方法被标记为未涵盖,我确信(因为日志)这些功能都被覆盖。 这是我想要测试的代码(使用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 个答案:

答案 0 :(得分:0)

我遇到过类似的问题,而且我已经成功地使用了它 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

希望这有帮助。