覆盖伊斯坦布尔和摩卡/柴的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此代码?
就像所有最棘手的问题一样,这是由一些愚蠢和无关的东西造成的。
我通过grunt运行istanbul,并使用env
解决方法,因此在检查覆盖率时使用了正确的目录。 正如在这样的事情:
env: { coverage: { APP_DIR_FOR_CODE_COVERAGE: '../test/coverage/instrument/app/' } },
如grunt-istanbul文档所示
问题是我忘记在为创build覆盖testing而创build的任务中包含env:coverage
。
无论如何,如果你有这个相同的问题,你可能做了一些非常愚蠢的事情。