在我的代码中,我有var es = require('event-stream');
在我的package.json中,我有
"scripts": {
"test": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec",
}
我只想覆盖我的主文件,但它也涵盖了event-stream的文件,所以我得到了像
这样的东西=============================== Coverage summary ===============================
Statements : 24.74% ( 757/3060 )
Branches : 5.42% ( 88/1625 )
Functions : 15.56% ( 70/450 )
Lines : 25.37% ( 735/2897 )
================================================================================
有没有办法只覆盖我自己的代码?
答案 0 :(得分:2)
khansolo说我考虑过什么,但是当我尝试它时,它没有工作。
问题是当我使用沙盒模块时。这导致任何未被模拟的功能成为覆盖范围的一部分。
var es = require('event-stream');
var main = SandboxedModule.require('../main', {
requires: {
'gulp-s3': gulpS3,
'knox': faux,
'event-stream': es
}
});
通过对测试进行这种伪模拟。我们可以将保密范围保留为我们自己的文件,而不是' event-stream'。
答案 1 :(得分:1)
伊斯坦布尔允许您告诉它忽略具有特定注释的代码,格式为
/* istanbul ignore <word>[non-word] [optional-docs] */
所以,你可以忽略这样的require()语句:
/* istanbul ignore next */
var es = require('event-stream');
require语句生成的残骸将在您的覆盖率报告中显示为灰色,并且不包含在总计中。有关详细信息,请参阅文档:https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md