Node.js 涵盖伊斯坦布尔和摩卡/柴的功能 我很难理解如何对测试功能进行单元测试,这样伊斯坦布尔就可以考虑它们的覆盖。

Node.js 涵盖伊斯坦布尔和摩卡/柴的功能 我很难理解如何对测试功能进行单元测试,这样伊斯坦布尔就可以考虑它们的覆盖。,node.js,unit-testing,code-coverage,mocha.js,istanbul,Node.js,Unit Testing,Code Coverage,Mocha.js,Istanbul,举一个非常简单的例子,我创建了这个数学模块: var add = function( one, two ){ return one + two; } module.exports = { add: add }; 和基本单元测试: var chai = require('chai'); var expect = chai.expect; describe('add() method', function(){ it('should do math', function

举一个非常简单的例子,我创建了这个数学模块:

var add = function( one, two ){
    return one + two;
}

module.exports = {
    add: add
};
和基本单元测试:

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)
  • 功能:0%(0/1)
  • 行数:66.67%(2/3)
  • 忽略:无


如果仅仅测试调用函数的结果不算覆盖率,那么当代码位于单元测试无法访问的函数范围内时,您应该如何测试该代码?

与所有最棘手的问题一样,这是由愚蠢和不相关的原因造成的

我通过grunt运行伊斯坦布尔,并使用
env
解决方案,以便在检查覆盖率时使用正确的目录。就像这样:

env: {
    coverage: {
        APP_DIR_FOR_CODE_COVERAGE: '../test/coverage/instrument/app/'
    }
},
如图所示

问题是我忘记在为运行覆盖率测试而创建的任务中包含
env:coverage

无论如何,如果你有同样的问题,你可能也做了一些非常愚蠢的事情