1.4 KiB
1.4 KiB
LSN-0038: JaCoCo Reports Consolidation in Gradle
- Problem: Múltiplos módulos Gradle gerando reports individuais de cobertura de código, dificultando a visão consolidada para o Jenkins.
- Decision: Implementar o plugin JaCoCo via
buildSrcpara todos os subprojetos e criar uma task de agregação customizada no root project. - Implementation:
buildSrc/src/main/kotlin/gradle.java-common-conventions.gradle.kts: Aplicado o pluginjacocoe configurado ojacocoTestReportpara rodar após otest.build.gradle.kts(Root): Criada a taskjacocoTestReportque agregaexecutionData,sourceDirectorieseclassDirectoriesde todos os subprojetos Java folha.
- Example:
- Rodar
./gradlew test jacocoTestReportgera:- Reports individuais:
<module>/build/reports/jacoco/test/html/index.html - Report consolidado:
build/reports/jacoco/jacocoTestReport/html/index.html
- Reports individuais:
- Rodar
- Pitfalls:
- O plugin
jacoco-report-aggregationnativo do Gradle pode ter problemas com estruturas de subprojetos aninhados que não possuem o plugin Java aplicado. A task customizada no root é mais robusta para este layout. - É importante filtrar apenas subprojetos "folha" (sem subprojetos próprios) que aplicam o plugin
javapara evitar erros de diretórios inexistentes.
- O plugin
- References:
DSC-0024,DEC-0024,PLN-0047.