2010-08-20 19 views
5

Est-il possible d'utiliser Cobertura pour lui dire d'ignorer certains bits de code identifiés par des commentaires de début et de fin?Configurer cobertura pour ignorer certains blocs de code

Par exemple,

public class Foo { 

    public void static doSomething() { 
     ... 
     // Cobertura-Ignore-Start 
     ... 
     // Cobertura-Ignore-End 
} 

entraînerait Cobertura non compris le code entre le début et la fin des commentaires lors du calcul des statistiques de couverture.

Modifier: J'utilise la tâche cobertura Ant.

+0

pourquoi voudriez-vous faire cela? –

+0

Beaucoup de raisons, mais je vais donner un exemple. Supposons que vous ayez une classe de test et que le code ressemble à ceci: public void testSomething() {try {doSomething(); échouer(); } catch (Exception e) {// check exception}} - Essentiellement c'est un test pour s'assurer que doSomething() lancera une exception mais fail(); ne sera jamais appelé sauf si votre test est réellement cassé. Donc, si vous voulez une couverture de test de 100% et si tous vos tests passent comme ils le devraient, la ligne contenant fail(); aurait besoin d'être noté comme une ligne qui ne devrait pas être vérifiée par cobertura. J'espère que cela a du sens. – digiarnie

+0

Comment l'échec de ne pas être appelé affecte-t-il votre couverture de code ... car cela fait partie de la classe de test ... –

Répondre

5

Non, ce n'est pas possible. Cobertura n'a pas de fonctionnalité qui lui permet de passer le code. La seule chose que vous pouvez ignorer est les appels de méthode à certains paquets et/ou classes.

Vous devrez probablement creuser dans le code et voir s'il est possible de l'étendre de manière à ignorer les blocs.

0

Vous ne pouvez ignorer au niveau de la classe que pour autant que je sache (ce qui signifie que toute méthode des classes ignorées n'est pas comptée, elle est instrumentée, donc pas d'accélération en faisant cela).