我正试图让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报告正在生成。)
答案 0 :(得分:26)
显然karma code coverage documentation比我想象的更加文字。将我的preprocessors
配置更改为
preprocessors = {
'**/tmp/scripts/**/*.js': 'coverage'
};
(注意前面的**/
)做了伎俩。我不确定为什么files
数组和preprocessors
对象('tmp/scripts/**/*.js'
与'**/tmp/scripts/**/*.js'
)的语法不同。