web-dev-qa-db-ja.com

Jest:コードカバレッジの行を無視する

Jestでは、テストカバレッジのコードを無視する方法はありますか?使ってみた

/* istanbul ignore next */

しかし、うまくいかないようです。

26
Nahush Farkande

できます。

(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);

サンプルプロジェクト https://github.com/ilyar/sandbox/tree/master/jest

17
ilyar

後日これを見つけた人のために更新してください。

/* istanbul ignore next */ 

動作しますが、The Jest Official Documentationから読むと:

coveragePathIgnorePatternsは効果がないようです。

babel-plugin-istanbulプラグインを使用していないことを確認してください。 Jestはイスタンブールをラップしているため、カバレッジコレクションでインストルメントするファイルをイスタンブールに伝えます。 babel-plugin-istanbulを使用する場合、Babelによって処理されるすべてのファイルにカバレッジコレクションコードがあるため、coveragePathIgnorePatternsによって無視されません。

ドキュメントはここにあります: Documentation

したがって、この問題を修正するには、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からでした: quote

4
Neoxidine

回避策が見つかりました(コメントの前後にスペースが必要なようです):

class Foo {
  bar /* istanbul ignore next */ () {
    return 'biu~';
  }
}
1
ellite

TypeScriptユーザーの場合:

問題があるようです here これはts-jestで動作しません

0
Romario R.