2013-03-26 17 views
20

私はKarmaランナーに、Jenkinsのビルド中に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のレポートが細かい生成しています。)

答えて

25

どうやらkarma code coverage documentationは思ったよりも多くのリテラルました。 (**/前の注意)

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

に私のpreprocessors設定を変更すると、トリックをしました。 files配列とpreprocessorsオブジェクト('tmp/scripts/**/*.js''**/tmp/scripts/**/*.js')の構文が異なる理由がわかりません。

+0

ありがとうございます!これは、karma.conf.jsのファイル配列からコピー&ペーストしただけでなく、私も混乱しました。 – grant