如何忽略伊斯坦布尔覆盖范围内node.js中的所需文件

在我的代码中,我有var es = require('event-stream');

在我的package.json中,我有

 "scripts": { "test": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec", } 

我只想覆盖我的主文件,但它也涵盖事件stream的文件,所以我得到的东西

 =============================== Coverage summary =============================== Statements : 24.74% ( 757/3060 ) Branches : 5.42% ( 88/1625 ) Functions : 15.56% ( 70/450 ) Lines : 25.37% ( 735/2897 ) ================================================================================ 

有没有办法只覆盖我自己的代码?

没关系,我知道了。

khansolo说我已经考虑过了,但是当我尝试它时,它没有奏效。

问题是当我使用沙箱模块。 这导致任何function没有被嘲笑成为覆盖的一部分。

 var es = require('event-stream'); var main = SandboxedModule.require('../main', { requires: { 'gulp-s3': gulpS3, 'knox': faux, 'event-stream': es } }); 

通过为testing做这种伪嘲弄。 我们可以保持独家覆盖我们自己的文件,而不是“事件stream”。

伊斯坦布尔允许你告诉它在表单中忽略具体评论的代码

 /* istanbul ignore <word>[non-word] [optional-docs] */ 

所以,你可以忽略require()这样的语句:

 /* istanbul ignore next */ var es = require('event-stream'); 

由require语句生成的cruft将在您的覆盖报告中变为灰色,而不包含在总计中。 有关详细信息,请参阅文档: https : //github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md