Tengo un proyecto de varios módulos de maven y estoy usando jacoco-maven para informes de cobertura de código. Algunas clases no deberían ser reportadas, ya que son configuraciones de Spring y no me interesan.
He declarado el complemento maven-jacoco de la siguiente manera:
<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>
El problema es que cuando ejecuto mvn clean verify
jacoco todavía reporta clases que deberían haber sido excluidas como señala mi configuración xml. ¿Cómo puedo configurarlo correctamente?
fuente
Aunque Andrew ya respondió la pregunta con detalles, estoy dando un código sobre cómo excluirlo en pom
Para la aplicación Springboot
fuente
.class
fin , como:<exclude>**/*com/test/vaquar/khan/HealthChecker</exclude>
<exclude>com/mycompany/mypackage/**/*</exclude>
Otra solución:
Tenga en cuenta que estamos utilizando
"<element>PACKAGE</element>"
en la configuración que luego nos ayuda a excluir a nivel de paquete.fuente
https://github.com/jacoco/jacoco/issues/34
Estas son las diferentes notaciones para las clases que tenemos:
Parámetros de agente, tareas de Ant y objetivo de agente de preparación de Maven
Estas especificaciones permiten comodines * y?, Donde * comodines cualquier número de caracteres, incluso varias carpetas anidadas.
Objetivo del informe Maven
Estas especificaciones permiten Ant Filespec como comodines *, ** y?, Donde * comodines solo son partes de un solo elemento de ruta.
fuente
Utilice la propiedad sonar.coverage.exclusions.
Esto debería excluir las clases del cálculo de cobertura.
fuente
puede configurar la exclusión de cobertura en las propiedades de la sonda, fuera de la configuración del complemento jacoco:
y recuerde eliminar la configuración de exclusión del complemento
fuente
Aquí está la muestra de trabajo en el
pom.xml
archivo.fuente