J'utilise EclEmma pour tester la couverture de mes tests de scénarios et utiliser des tests de cas sur mon projet. J'ai un package de base qui contient les classes les plus générales et les tests de cas d'utilisation. La couverture ressemble à ceci:
Ce que je veux, c'est exclure les tests de cas d'utilisation (par exemple BugReportTest) du calcul de la couverture. Mais je veux que les tests à l'intérieur soient pris en compte. Je sais comment exclure toute la classe de la couverture, mais si je le fais, mon% de couverture baisse car les tests réels qui vérifient quelles lignes de mon code sont testées sont oubliés. Ces tests de cas d'utilisation doivent rester dans le package de base pour des raisons de confidentialité.
Pour des raisons techniques, il peut être nécessaire d'exclure certaines classes de l'analyse de couverture de code. Les options suivantes configurent l'agent de couverture pour exclure certaines classes de l'analyse. À l'exception de l'optimisation des performances ou des cas techniques, ces options ne sont normalement pas nécessaires.
Exclut: Une liste de noms de classe qui doivent être exclus de l'analyse d'exécution. Les entrées de la liste sont séparées par une colon (:)
et peuvent utiliser wildcard characters (* and ?). (Default: empty)
Exclure les chargeurs de classe: Une liste de noms de chargeurs de classe qui doivent être exclus de l'analyse d'exécution. Les entrées de la liste sont séparées par une colon (:)
et peuvent utiliser wildcard characters (* and ?)
. Cette option peut être requise en cas de frameworks spéciaux qui entrent en conflit avec l'instrumentation de code JaCoCo, en particulier les chargeurs de classe qui n'ont pas accès aux classes d'exécution Java Java. (Default: Sun.reflect.DelegatingClassLoader)
Avertissement: utilisez ces options avec prudence! Des entrées non valides peuvent casser le lanceur de couverture de code. N'utilisez pas non plus ces options pour définir la portée de votre analyse. Les classes exclues s'afficheront toujours comme non couvertes.
<filter includes="com.foo.*" excludes="com.foo.test.*, com.foo.*Test*" />
<filter includes="com.foo.*" /> <filter excludes="com.foo.test.*, com.foo.*Test*" />
<filter value="+com.foo.*, -com.foo.test.*, -com.foo.*Test*" />
où le fichier myfilters.txt contient ces lignes:
<filter excludes="com.foo.*Test*" file="myfilters.txt" />
-com.foo.test.* +com.foo.*
Preferences->Java->Code Coverage
et définissez le "Only path entries matching"
option pour src/main/Java
- semble bien fonctionner