我们为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构建摘要页面:
詹金斯报道详情屏幕: