web-dev-qa-db-ja.com

カルマコードカバレッジレポートからファイルを除外するにはどうすればよいですか?

カルマカバレッジランナー https://github.com/karma-runner/karma-coverage のコードカバレッジレポートからファイルを除外する方法はありますか?

30
Edgar Martinez

ここでいくつかのテクニックを使用できます:karmaは minimatch globsをファイルパスに使用し、一部のパスを除外するためにそれを利用できます。

最初の解決策として、カバレッジで前処理するファイルのパスのみを追加してみてください。

// karma.conf.js
module.exports = function(config) {
  config.set({
    files: [
      'src/**/*.js',
      'test/**/*.js'
    ],

    // coverage reporter generates the coverage
    reporters: ['progress', 'coverage'],

    preprocessors: {
      // source files, that you wanna generate coverage for
      // do not include tests or libraries
      // (these files will be instrumented by Istanbul)
      'src/**/*.js': ['coverage']
    },

    // optionally, configure the reporter
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'
    }
  });
};

上記はkarma-coverageのデフォルトの例であり、srcフォルダー内のファイルのみが前処理されることを示しています。

別のトリックは、!演算子を使用して特定のパスを除外することです。

preprocessors: {
  // source files, that you wanna generate coverage for
  // do not include tests or libraries
  'src/**/!(*spec|*mock).js': ['coverage']
},

上記の方法では、spec.jsまたはmock.jsで終わらないJavascriptファイルでのみカバレッジが実行されます。同じことがフォルダーに対しても実行できます。

preprocessors: {
  // source files, that you wanna generate coverage for
  // do not include tests or libraries
  'src/**/!(spec|mock)/*.js': ['coverage']
},

specまたはmockフォルダー内のJavascriptファイルを処理しないでください。

45
MarcoL