在JaCoCo代码覆盖范围中排除Setter和Getters

时间:2014-08-31 13:29:01

标签: code-coverage setter getter jacoco jacoco-maven-plugin

使用cobertura-maven-plugin选项,可以使用ignoreTrivial setter和getter从代码覆盖率中排除。 jacoco-maven-plugin还有这种可能吗?

这是我目前的配置:

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.7.1.201405082137</version>
  <configuration>
    <excludes>
      <exclude>com/welovecoding/web/blog/test/**/*.class</exclude>
    </excludes>
  </configuration>
  <executions>
    <execution>
      <id>amend-unit-test-java-agent-option</id>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
    </execution>
    <execution>
      <id>report</id>
      <phase>prepare-package</phase>
      <goals>
        <goal>report</goal>
      </goals>
    </execution>
  </executions>
</plugin>

3 个答案:

答案 0 :(得分:10)

官方不支持,请参阅以下评论:

  

https://github.com/jacoco/jacoco/issues/15

提到的解决方案:

  

这个问题打开已经很久了。这是一个非常有趣的功能。例如,它是在三叶草和corbetura中实现的。有fork实现过滤:   github.com/huangxiwei/jacoco,   从今年年初开始https://github.com/mchr3k/jacoco。为什么不将这些fork合并到master分支中?即使在开始时未实现所有过滤,所需的主过滤器也会列在您编写的Wiki页面中(尝试使用资源,同步块,枚举静态方法)。覆盖范围是一个非常有用的工具,更多的是它会产生更多有用的工具。当覆盖率达到很高的值时,它会有所帮助,有助于专注于正确的类别。

答案 1 :(得分:3)

从JaCoCo 0.8.0起,可以将 Lombok 自动生成的getter / setter(以及toString()equals() ...)排除在filtering options带来的覆盖率指标:

龙目岛

用@lombok注释的方法.Generated(由Lombok getter,setter,equals,hashcode,toString等生成)-完成于0.8.0

为此,您首先需要创建一个lombok.config文件,该文件位于例如projet的根文件夹中,其内容如下:

lombok.addLombokGeneratedAnnotation = true

@Generated批注将添加到设置器/获取器等中,并在覆盖率分析中被跳过。

答案 2 :(得分:-5)

我建议使用没有此类限制的Cobertura,也没有那么多误报警告。