有人找到了忽略琐碎方法的良好解决方案吗?
使用像Unitils
这样的自动化测试并不是一个真正的选择,因为如果只测试了getter / setter,代码覆盖率就不会上升!
使用 cobertrua-maven-plugin版本2.5.1 :
- )忽略方法不起作用<ignore>com.company.*.set*</ignore>
- )有人试图在maven-plugin中加入像http://sourceforge.net/tracker/index.php?func=detail&aid=3010530&group_id=130558&atid=720017这样的补丁吗?
- )任何人使用不同的(更好的?)测试插件?
每个get / set / is *方法的一般忽略也不是一个好方法,因为这些模式可以在其他方法中使用,但可以使用getter / setter。此外,应该很容易猜到琐碎的getter / setter / constructors。
我知道这个问题:Ignore methods in class. cobertura maven plugin但由于没有得到任何相关的答案,我想我再试一次。
答案 0 :(得分:13)
自从Cobertura 2.0以来,有一个转换来排除琐碎的方法:
[Cobertura Changelog] 新 --ignoreTrivial开关告诉Cobertura忽略了 覆盖率报告中的以下内容:简单的Getter方法 读一个类字段;设置类字段的Setter方法; 只设置类字段并调用超级字符串的构造函数 类构造函数。
cobertura-maven-plugin自2.6版开始使用Cobertura 2.x(参见release notes)。但我还没有找到一种方法将交换机传递给maven插件配置。
尽管对此功能的状态似乎存在一些混淆(请参阅此Jira issue),但该标志似乎可以使用以下配置:
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<instrumentation>
<ignoreTrivial>true</ignoreTrivial>
</instrumentation>
</configuration>
答案 1 :(得分:1)
此处修复了排除问题:
http://jira.codehaus.org/browse/MCOBERTURA-52
它是最新版本(2.5.2)的一部分。它自2012年9月10日起可用:
http://search.maven.org/#search|gav|1|g%3A%22org.codehaus.mojo%22%20AND%20a%3A%22cobertura-maven-plugin%22