如何从istanbul coverage中忽略node.js中的必需文件

yuj*_*red 5 javascript command-line mocha.js node.js istanbul

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

在我的package.json中,我有

"scripts": {
    "test": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec",
}
Run Code Online (Sandbox Code Playgroud)

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

=============================== Coverage summary ===============================

Statements   : 24.74% ( 757/3060 )
Branches     : 5.42% ( 88/1625 )
Functions    : 15.56% ( 70/450 )
Lines        : 25.37% ( 735/2897 )
================================================================================
Run Code Online (Sandbox Code Playgroud)

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

yuj*_*red 2

没关系,我已经弄清楚了。

kansolo说的我也考虑过,但是当我尝试的时候,它不起作用。

问题是当我使用沙盒模块时。这会导致任何未模拟的函数成为覆盖范围的一部分。

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

通过做这种伪模拟来进行测试。我们可以将覆盖范围保留为我们自己的文件而不是“事件流”。