是否仍然没有使用cobertura-maven-plugin忽略setter / getter(其他简单方法)的解决方案?

时间:2012-02-13 13:55:09

标签: testing code-coverage maven-plugin cobertura

有人找到了忽略琐碎方法的良好解决方案吗? 使用像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但由于没有得到任何相关的答案,我想我再试一次。

2 个答案:

答案 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