Java Lombok单元测试以获取吸气剂

Nik*_*Nik 6 java unit-testing code-coverage lombok

我正在lombokJava项目中使用@Getter@Setter注释对象的私有成员变量。我们知道这些获取器和设置器将按预期工作。因此,我们实际上并不需要对它们进行单元测试。但是,这降低了code coverage单元测试中的代码。

有没有一种方法可以告诉单元测试引擎不需要测试由龙目岛生成的吸气剂和吸气剂?

Roe*_*ker 6

从 Lombok 1.16.14 开始,所有生成的方法都将使用@lombok.Generated.

您可以从 Cobertura 测试报告中排除它们:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>2.7</version>
  <configuration>
    <instrumentation>
      <ignoreMethodAnnotation>lombok.Generated</ignoreMethodAnnotation>
    </instrumentation>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

披露:我是龙目岛的开发人员。

注意。目前,Lombok 1.16.14 还没有发布。不过,您可以下载包含此修复程序的边缘版本


Jos*_*que 4

从 Cobertura 2.0 开始,如果仅涉及 getter 和 setter,您可以设置ignoreTrival 开关:

Cobertura 变更日志 - 新的 --ignoreTrivial 开关告诉 Cobertura 忽略覆盖率报告中的以下内容: 仅读取类字段的 Getter 方法;设置类字段的 Setter 方法;仅设置类字段并调用超类构造函数的构造函数

如果您希望更具体地忽略方法,您还可以使用ignoreMethodAnnotation开关:

Cobertura 变更日志 - 新的 --ignoreMethodAnnotation 开关用于指定注释,当该注释出现在方法上时,将导致 Cobertura 忽略覆盖率报告中的方法

或者,从 Maven 插件:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>cobertura-maven-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
        <formats> 
            <format>xml</format> 
            <format>html</format> 
        </formats> 
        <instrumentation> 
            <ignoreTrivial>true</ignoreTrivial> 
            <excludes> 
                <exclude>**/some/trivial/classes/**</exclude> 
            </excludes> 
        </instrumentation> 
    </configuration> 
    <executions> 
        <execution> 
            <goals> 
                <goal>clean</goal> 
                <goal>check</goal> 
            </goals> 
        </execution> 
    </executions> 
</plugin> 
Run Code Online (Sandbox Code Playgroud)