56 votes

Exclure code de la couverture de code avec Cobertura

Est-il un moyen d'exclure code de l'inclusion dans Cobertura des rapports de couverture? Nous avons quelques méthodes qui ne doivent pas figurer dans le rapport de couverture et, par conséquent, pas de voiture bas de la couverture des numéros.

Je sais que le Trèfle a une telle fonctionnalité, mais je n'ai pas trouvé quelque chose de semblable pour Cobertura.

61voto

Juha Syrjälä Points 11475

Vous pouvez exclure des classes à partir de l'instrumentation. Ensuite, ils ne doivent pas apparaître sur les rapports. Voir exclure les instructions ci-dessous.

Vous pouvez également ignorer les appels à certaines méthodes. Voir ignorer la déclaration ci-dessous.

Si vous utilisez maven, voir le plugin maven manuel.

    <configuration>
      <instrumentation>
        <ignores>
          <ignore>com.example.boringcode.*</ignore>
        </ignores>
        <excludes>
          <exclude>com/example/dullcode/**/*.class</exclude>
          <exclude>com/example/**/*Test.class</exclude>
        </excludes>
      </instrumentation>
    </configuration>

Et pour ant voir ce.

<cobertura-instrument todir="${instrumented.dir}">
  <ignore regex="org.apache.log4j.*" />
  <fileset dir="${classes.dir}">
    <include name="**/*.class" />
    <exclude name="**/*Test.class" />
  </fileset>
  <fileset dir="${jars.dir}">
    <include name="my-simple-plugin.jar" />
  </fileset>
</cobertura-instrument>

21voto

Iker Jimenez Points 3351

Cela a été de me casser la tête pour un certain temps maintenant.

Mon problème est que j'ai eu la cobertura maven plugin de configuration dans la section rapports au lieu de la construction de la section.

Les paramètres d'instrumentation, et donc l'exclusion de classes ou de paquets, ne sera pas appliqué si vous n'avez pas à construire la section, donc attention à cela.

17voto

Sarah Phillips Points 138

Rappelez-vous d'exclure les classes internes.

<exclude>path/to/class/MyClass*.class</exclude>

Il m'a fallu les âges de remarquer qu'il me manquait un astérisque!

4voto

Jason Points 279

Cobertura ne dispose pas actuellement de fournir une telle fonctionnalité, et ni ne Emma (que nous utilisons) même si elle est répertoriée comme une prochaine amélioration - bien que sous la forme d'une extension à l'exclusion des règles je crois plutôt que comme une annotation.

Ce serait pratique pour couvrir ces quelques coins inaccessibles de manière propre de sorte que vous pouvez vous efforcer d'arriver à 100% sans être ridicule.

Je pense que les annotations serait probablement un plus convivial moyen de le faire, mais ils doivent être assez explicitement nommé et basé sur une liste de scénarios acceptables que j'ai peur sinon quelque chose comme '@ExcludeFromCoverage " aurait ajouté plus généreusement.

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