[英]Java lombok unit tests for getters setters
我使用的lombok
在我的Java项目注释与我对象的私有成员变量@Getter
和@Setter
注解。 我们知道那些吸气剂和固定剂会按预期工作。 所以我们并不需要对它们进行单元测试。 但是,这降低了单元测试中代码的code coverage
。
有没有办法告诉单元测试引擎不需要测试lombok生成的getter和setter?
从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>
披露:我是Lombok开发人员。
NB。 目前,Lombok 1.16.14尚未发布。 您可以下载包含此修复程序的边缘版本 。
从Cobertura 2.0开始,如果它只是关于getter和setter,你可以设置ignoreTrival开关:
Cobertura Changelog - 新的--ignoreTrivial开关告诉Cobertura忽略覆盖率报告中的以下内容:Getter方法只读取一个类字段; 设置类字段的Setter方法; 仅设置类字段并调用超类构造函数的构造函数
如果您希望更具体地忽略方法,还可以使用ignoreMethodAnnotation开关:
Cobertura Changelog - 新的--ignoreMethodAnnotation开关用于指定注释,当注释出现在方法上时,将导致Cobertura忽略coverage报告中的方法
或者,从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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.