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レポートは正常に生成されています。)
どうやら karmaコードカバレッジドキュメント は思ったよりも文字通りだったようです。 preprocessors
構成を
preprocessors = {
'**/tmp/scripts/**/*.js': 'coverage'
};
(前の**/
に注意してください)トリックを行いました。 files
配列とpreprocessors
オブジェクト('tmp/scripts/**/*.js'
と'**/tmp/scripts/**/*.js'
)で構文が異なる理由がわかりません。