Jest:忽略代码覆盖的行

Nah*_*nde 28 code-coverage istanbul jestjs

在Jest中,有没有办法忽略测试覆盖的代码?我试过用

/* istanbul ignore next */
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

ily*_*yar 17

有用.

(function(global) {

    var defineAsGlobal = true;
    /* istanbul ignore next */
    if(typeof exports === 'object') {
        module.exports = lib;
        defineAsGlobal = false;
    }
    /* istanbul ignore next */
    if(typeof modules === 'object' && typeof modules.define === 'function') {
        modules.define('lib', function(provide) {
            provide(lib);
        });
        defineAsGlobal = false;
    }
    /* istanbul ignore next */
    if(typeof define === 'function') {
        define(function(require, exports, module) {
            module.exports = lib;
        });
        defineAsGlobal = false;
    }
    /* istanbul ignore next */
    defineAsGlobal && (global.lib = lib);
})(this);
Run Code Online (Sandbox Code Playgroud)

示例项目https://github.com/ilyar/sandbox/tree/master/jest

  • 对我不起作用。我使用 React 脚本 v2.1.5 和 jest v23.6.0 (3认同)

Spe*_*ack 11

仅适用于任何使用v8提供程序的人: 文档现在说明如何忽略具有不同提供程序的行,并链接到更多详细信息。但基本上,要么/* c8 ignore next */要么/* c8 ignore start */+/*c8 ignore end */应该与v8提供商很好地合作。

例子:

/* c8 ignore next */
if (process.env.DEBUG) console.log('debug');

/* c8 ignore start */
switch (process.env.DEBUG) {
case '1':
  console.log('some verbosity');
  break;
case '2':
  console.log('a lot of verbosity');
  break;
}
/* c8 ignore end */
Run Code Online (Sandbox Code Playgroud)


Dim*_*uid 6

以后发现的任何人的更新。

/* istanbul ignore next */ 
Run Code Online (Sandbox Code Playgroud)

可以工作,但是从The Jest Official Document阅读:

coveragePathIgnorePatterns似乎没有任何作用。

确保您没有使用babel-plugin-istanbul插件。Jest包装了伊斯坦布尔,因此还告诉伊斯坦布尔哪些文件可用于覆盖范围收集。使用babel-plugin-istanbul时,Babel处理的每个文件都将具有coverage收集代码,因此coveragePathIgnorePatterns不会忽略该文件。

可以在这里找到文档文档

因此,为了解决此问题,请卸载babel-plugin-istanbul:

如果它是仅基于javascript的库,则只能运行;npm uninstall --save babel-plugin-istanbul或者npm uninstall --save-dev babel-plugin-istanbul 如果您安装的库中包含需要链接的本机内容,并且已将其与rnpm链接,则可以执行以下操作:rnpm unlink package_name然后执行步骤1-Aakash Sigdel

此报价来自Aakash Sigdel,在这里找到:报价


小智 6

找到了解决方法(评论前后的空格似乎是必要的):

class Foo {
  bar /* istanbul ignore next */ () {
    return 'biu~';
  }
}
Run Code Online (Sandbox Code Playgroud)