25

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レポートは正常に生成されています。)

4

1 に答える 1

28

どうやら、カルマコードカバレッジのドキュメントは私が思っていたよりも文字通りでした。preprocessors構成を次のように変更します

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

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

于 2013-03-26T22:41:21.420 に答える