Как я могу исключить методы (хэш-код и равно) из отчета о покрытии Clover? - PullRequest
5 голосов
/ 03 января 2012

Я бы хотел исключить hashCode и equals из отчета о клевере.
Некоторые примеры конфигурации были бы хорошими.

Ответы [ 2 ]

3 голосов
/ 03 января 2012

Я бы хотел исключить hashCode и равно из отчета клевера.

Я бы с уважением предложил вам проверить эти методы, а не избегать их. Серьезные ошибки могут возникнуть, если они не соответствуют спецификациям. Я сталкивался с NPE и другими проблемами в плохо написанных hashCode и equals методах. Вот отличная ссылка с несколькими способами, которые вы можете проверить ваши методы:

Как один модуль должен проверить контракт на хеш-код?

Мы используем следующее LocalEqualsHashCodeTest, которое может быть расширено модульным тестом:

http://pastebin.com/L03fHAjv

Затем вы определяете метод createInstance(), который возвращает экземпляр вашего класса, и метод createNotEqualInstance(), который возвращает другой экземпляр, который не равен первому.

1 голос
/ 06 ноября 2013

Вы должны сделать два шага:

1) Определите контексты метода в задаче , содержащей регулярные выражения для методов, которые вы хотите сопоставить, например:

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

2) Определите, какие контексты методов должны быть исключены из отчета в задаче

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

Дополнительная информация:

...