J'ai un projet multi-module maven et j'utilise jacoco-maven pour les rapports de couverture de code. Certaines classes ne doivent pas être signalées, car elles sont une configuration Spring et elles ne m'intéressent pas.
J'ai déclaré le plugin maven-jacoco comme suit:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.2.201409121644</version>
<configuration>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
<exclude>some.package.*</exclude>
<exclude>**/*Config.*</exclude>
<exclude>**/*Dev.*</exclude>
<exclude>some/package/SomeClass.java</exclude>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
Le problème est que lorsque mvn clean verify
j'exécute, jacoco signale toujours des classes qui auraient dû être exclues comme le souligne ma configuration xml. Comment puis-je le configurer correctement?
la source
Bien qu'Andrew ait déjà répondu à la question avec des détails, je donne le code comment l'exclure dans pom
Pour l'application Springboot
la source
.class
fin , tel que:<exclude>**/*com/test/vaquar/khan/HealthChecker</exclude>
<exclude>com/mycompany/mypackage/**/*</exclude>
Une autre solution:
Veuillez noter que nous utilisons
"<element>PACKAGE</element>"
dans la configuration ce qui nous aide ensuite à exclure au niveau du package.la source
https://github.com/jacoco/jacoco/issues/34
Voici les différentes notations pour les classes que nous avons:
Paramètres de l'agent, tâches Ant et objectif de préparation de l'agent Maven
Ces spécifications autorisent les caractères génériques * et?, Où * les caractères génériques peuvent contenir n'importe quel nombre de caractères, même plusieurs dossiers imbriqués.
Objectif du rapport Maven
Ces spécifications autorisent Ant Filespec comme les caractères génériques *, ** et?, Où * les éléments génériques d'un seul élément de chemin d'accès.
la source
Utilisez la propriété sonar.coverage.exclusions.
Cela devrait exclure les classes du calcul de la couverture.
la source
vous pouvez configurer l'exclusion de couverture dans les propriétés du sondeur, en dehors de la configuration du plugin jacoco:
et n'oubliez pas de supprimer les paramètres d'exclusion du plugin
la source
Voici l'exemple de travail dans le
pom.xml
fichier.la source