如何在sonarqube中为最终类的私有构造函数提供测试覆盖率?

时间:2018-01-30 04:16:09

标签: java jenkins sonarqube jacoco

我有一个最终的util类,我添加了一个私有构造函数来隐藏默认的公共构造函数。如何通过jacoco覆盖报告和在詹金斯建立的声明,在sonarqube中获得此课程的报道?

public final class Util {

      // My contructor
      private Util() {
          super();
     }
 }

2 个答案:

答案 0 :(得分:4)

根据JaCoCo changelog这样的私有空无参数构造函数从JaCoCo版本0.8.0开始自动过滤掉。 Changelog还指出:

  

直接读取exec文件并为此嵌入JaCoCo的工具(如SonarQube或Jenkins)只有在更新到此版本的JaCoCo后才会提供过滤功能。

Announcement of release of JaCoCo version 0.8.0州:

  

直接读取exec文件(不是最终报告)并嵌入JaCoCo以生成报告的工具只有在更新到此版本的JaCoCo后才会提供过滤功能。   所以请关注/等/等各自的供应商,如

           

由我们(Ant Tasks,Maven插件和命令行界面)作为JaCoCo项目的一部分开发的相应版本(0.8.0)集成生成的报告提供过滤功能。

截至今日(2018年1月30日):

答案 1 :(得分:0)

如果您将声纳配置为使用cobertura(而不是jacoco)进行代码覆盖,则只需exclude that method from code coverage

这似乎比writing an artifical test case using reflection更容易。