如何从三叶草覆盖率报告中排除方法(哈希码和等号)?

时间:2012-01-03 10:51:06

标签: java clover

我想从三叶草报告中排除hashCodeequals 一些配置示例会很好。

2 个答案:

答案 0 :(得分:3)

  

我想从三叶草报告中排除hashCode和equals。

我会恭敬地建议您实际测试这些方法而不是避免它们。如果不符合规范,可能会出现严重错误。我在编写不良的hashCodeequals方法时也遇到过NPE和其他问题。这是一个很好的链接,有许多方法可以测试你的方法:

  

How should one unit test the hashCode-equals contract?

我们使用以下LocalEqualsHashCodeTest,可通过单元测试进行扩展:

  

http://pastebin.com/L03fHAjv

然后定义一个createInstance()方法,它返回一个类的实例和一个createNotEqualInstance()方法,该方法返回另一个不等于第一个实例的实例。

答案 1 :(得分:1)

您必须执行两个步骤:

1)在< clover-setup>中定义方法上下文包含要匹配的方法的正则表达式的任务,例如:

<clover-setup ...>
    <methodContext name="equals" regexp="public boolean equals\(.*\)"/>
    <methodContext name="hashCode" regexp="public int hashCode\(\)"/>
</clover-setup>

2)在&lt; clover-report&gt;中定义应从报告中排除哪些方法上下文。任务

<clover-report>
   <current outfile="clover_html" title="My Coverage">
     <format type="html" filter="equals,hashCode"/>
   </current>

更多信息: