JaCoCo代码覆盖范围内的设置器和获取器除外

问题描述 投票:10回答:3

使用cobertura-maven-plugin setter和getter可以使用ignoreTrivial选项从代码覆盖率中排除。 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>
code-coverage setter getter jacoco jacoco-maven-plugin
3个回答
11
投票

不支持正式显示,请参见注释:

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

提到的解决方案:

距本刊物出版已有很长时间了。这是一个非常有趣的功能。例如,它在三叶草和corbetura中实现。有实现过滤的fork:github.com/huangxiwei/jacoco,https://github.com/mchr3k/jacoco自年初以来。为什么不将这些fork合并到master分支中?即使在开始时未实现所有过滤,所需的主要过滤器也会在您编写的Wiki页面中列出(尝试使用资源,同步块,枚举静态方法)。覆盖率是一个非常有用的工具,它的累加性越高,它就会越有用。当覆盖率达到很高的值时,它可以提供很多帮助,它可以帮助您专注于正确的课程。


0
投票

从JaCoCo 0.8.0开始,由于filtering options,可以从覆盖率指标中排除由Lombok自动生成的getter / setter方法。

Lombok

带@ lombok.Generated的方法(由Lombok getter,setter,equals,hashcode,toString等生成-在0.8.0中完成]

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

lombok.config

[lombok.addLombokGeneratedAnnotation = true 批注将被添加到setters / getters等中,并且在覆盖率分析中将被跳过。


-6
投票

我建议使用不具有此类限制并且也没有太多误报的Cobertura。

© www.soinside.com 2019 - 2024. All rights reserved.