报告Jenkins中的Angular 2代码覆盖率 – 覆盖类别之间的不匹配
我们为我们的Angular 2代码库build立了一个Jenkins版本,它以与我们的Java项目的testing和覆盖率报告类似的方式报告testing和代码覆盖率信息。 我们使用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中报告的要less得多。 我相信这是因为Jenkins类别的覆盖范围是“包”,“文件”,“类”,“方法”,“线条”和“条件”,而来自Karma的类别是“语句”,“分支” “function”,“线条”。 似乎排队的这两个类别中只有两个是“Lines”,而这是唯一一个报告数量不是100%的数据。
有没有办法正确翻译Karma报道报告中的类别,并将其显示在Jenkins中? 还需要任何解决scheme才能在构build摘要页面上显示覆盖率历史logging的图表。
一些截图:
我们的一些npm test
命令:
jenkinsbuild立摘要页面:
Jenkins覆盖细节屏幕: