我们为Angular 2代码库提供了Jenkins构建,它以类似于我们的Java项目的测试和覆盖率报告的方式报告测试和代码覆盖率信息。我们使用Karma使用以下karma.conf.js
生成Cobertura兼容的覆盖率数据:
coverageReporter: {
dir: 'coverage/',
reporters: [{
type: 'html',
dir: 'coverage'
}, {
type: 'lcovonly',
subdir: 'report-lcov'
}, {
type: 'text-summary'
},
// this is the important part:
{ type: 'cobertura', subdir: '.', file: 'cobertura.xml' }
]
}
我们使用Jenkins的Publish Cobertura Coverage Report
插件并将其指向cobertura.xml
文件。
我们看到的问题是,我们的实际覆盖率似乎比我们的Jenkins UI中报告的要少得多。我相信这是因为Jenkins的覆盖类别是“包”,“文件”,“类”,“方法”,“行”和“条件”,而来自Karma的类别是“语句”,“分支”, “功能”,“线条”。似乎排队的这两个类别中只有两个是“行”,而且这是唯一一个报告覆盖率不是100%的类别。
有没有办法从Karma覆盖率报告中正确翻译类别并将其显示在Jenkins中?还需要任何解决方案来显示构建摘要页面上的覆盖历史记录图。
一些截图:
我们的一些npm test
命令:
Jenkins构建摘要页面:
詹金斯报道详情屏幕: