Eu tenho um projeto de vários módulos maven e estou usando jacoco-maven para relatórios de cobertura de código. Algumas classes não devem ser relatadas, pois são configurações do Spring e não estou interessado nelas.
Eu declarei o plugin maven-jacoco da seguinte maneira:
<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>
O problema é que quando eu executo o mvn clean verify
jacoco ainda relata classes que deveriam ter sido excluídas conforme minha configuração xml indica. Como posso configurá-lo corretamente?
fonte
Embora Andrew já tenha respondido a pergunta com detalhes, estou fornecendo o código de como excluí-lo no pom
Para aplicativo Springboot
fonte
.class
fim , como:<exclude>**/*com/test/vaquar/khan/HealthChecker</exclude>
<exclude>com/mycompany/mypackage/**/*</exclude>
Outra solução:
Observe que estamos usando
"<element>PACKAGE</element>"
na configuração que nos ajuda a excluir no nível do pacote.fonte
https://github.com/jacoco/jacoco/issues/34
Estas são as diferentes notações para as classes que temos:
Parâmetros do agente, tarefas Ant e objetivo de preparação do agente Maven
Essas especificações permitem curingas * e?, Onde * curingas qualquer número de caracteres, até mesmo várias pastas aninhadas.
Maven relatório objetivo
Essas especificações permitem Ant Filespec como curingas *, ** e?, Onde * curingas são partes de um único elemento de caminho apenas.
fonte
Use a propriedade sonar.coverage.exclusions.
Isso deve excluir as classes do cálculo de cobertura.
fonte
você pode configurar a exclusão de cobertura nas propriedades do sonar, fora da configuração do plugin jacoco:
e lembre-se de remover as configurações de exclusão do plugin
fonte
Aqui está o exemplo de trabalho em
pom.xml
arquivo.fonte