报告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命令:

npm测试输出

jenkinsbuild立摘要页面:

詹金斯构建屏幕

Jenkins覆盖细节屏幕:

詹金斯覆盖细节屏幕