java-Jacoco eclipse插件和SonarQube中的代码覆盖率百分比值不同

我有一个Java项目.根据Jacoco eclipse插件(EclEmma Java代码覆盖率2.3.1.201405111647),该项目的代码覆盖率为22.3%.我生成.exec报告并将其提供给SonarQube并使用声纳运行器进行分析.结果,SonarQube的Web界面上显示的代码覆盖率为20.2%.软件包级别的coverage值也不同于Jacoco的eclipse插件显示的值.那怎么可能? SonarQube是否从Jacoco生成的.exec报告中获取值?

解决方法:

Jacoco基于字节码分析. exec文件与类文件结合在一起以获取最终的代码覆盖率值.在我的案例中,问题在于,Eclipse的Java编译器(用于Jacoco eclipse插件)生成的字节码与Javac的(在声纳运行程序分析期间)生成的字节码不同.因此,两个工具生成的代码覆盖率值是不同的.

上一篇:Centos6.9安装SonarQube7.6


下一篇:声纳:如何使用try-with-resources关闭FileOutputStream