如何设置Karma转轮代码覆盖率?

时间:2013-03-26 22:41:21

标签: karma-runner

我正试图让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报告正在生成。)

1 个答案:

答案 0 :(得分:26)

显然karma code coverage documentation比我想象的更加文字。将我的preprocessors配置更改为

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

(注意前面的**/)做了伎俩。我不确定为什么files数组和preprocessors对象('tmp/scripts/**/*.js''**/tmp/scripts/**/*.js')的语法不同。