web-dev-qa-db-ja.com

Karmaランナーコードカバレッジを設定する方法

Jenkinsのビルド中にKarmaランナーにcobertura形式のコードカバレッジレポートを生成させようとしています。それを取得して、coverage.xmlファイルを生成できますが、実際にはカバレッジデータはありません。 (LOG_DEBUGを使用して)カバレッジプリプロセッサが実行されていないようです。

私のkarma.conf.jsファイルの関連部分は次のとおりです。

files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/components/angular/angular.js',
  'app/components/angular-mocks/angular-mocks.js',
  'tmp/scripts/**/*.js',
  'tmp/spec/**/*.js'
];

preprocessors = {
  'tmp/scripts/**/*.js': 'coverage'
};

// test results reporter to use
// possible values: 'dots', 'progress', 'junit'
reporters = ['dots', 'junit', 'coverage'];

junitReporter = {
  outputFile: 'test-results.xml'
};

coverageReporter = {
  type: 'cobertura',
  dir: 'coverage/',
  file: 'coverage.xml'
};

(junitレポートは正常に生成されています。)

23
Noah Freitas

どうやら karmaコードカバレッジドキュメント は思ったよりも文字通りだったようです。 preprocessors構成を

preprocessors = {
  '**/tmp/scripts/**/*.js': 'coverage'
};

(前の**/に注意してください)トリックを行いました。 files配列とpreprocessorsオブジェクト('tmp/scripts/**/*.js''**/tmp/scripts/**/*.js')で構文が異なる理由がわかりません。

28
Noah Freitas