5 votes

Comment puis-je exclure une méthode (hashcode et equals) du rapport de couverture de Clover ?

Je voudrais exclure hashCode y equals du rapport sur le trèfle.
Un exemple de configuration serait bienvenu.

3voto

Gray Points 58585

J'aimerais exclure hashCode et equals du rapport clover.

Je vous suggère respectueusement de tester ces méthodes au lieu de les éviter. De graves bogues peuvent survenir si elles ne sont pas conformes aux spécifications. J'ai rencontré des NPE et d'autres problèmes avec des méthodes hashCode y equals également. Voici un lien intéressant qui propose plusieurs façons de tester vos méthodes :

Comment tester le contrat hashCode-equals ?

Nous utilisons les éléments suivants LocalEqualsHashCodeTest qui peut être étendu par un test unitaire :

http://pastebin.com/L03fHAjv

Vous définissez ensuite un createInstance() qui renvoie une instance de votre classe et une méthode createNotEqualInstance() qui renvoie une autre instance qui n'est pas égale à la première.

1voto

Marek Points 215

Vous devez procéder en deux étapes :

1) Définir des contextes de méthode dans la tâche <clover-setup> contenant des expressions régulières pour les méthodes que vous voulez faire correspondre, par exemple :

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

2) Définir les contextes de méthode à exclure du rapport dans la tâche <clover-report>.

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

Plus d'informations :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X