JaCoCo 📊

O JaCoCo (Java Code Coverage) é uma ferramenta de análise de cobertura de código para Java. Ele é utilizado para medir a cobertura de código de um projeto, ou seja, a porcentagem de código que é executada durante a execução dos testes. O JaCoCo é um plugin do Maven e pode ser configurado no arquivo pom.xml do projeto.

Configuração 🖥️

Para configurar o JaCoCo no Maven, é necessário adicionar o plugin jacoco-maven-plugin no arquivo pom.xml do projeto. O plugin jacoco-maven-plugin possui um goal report que gera um relatório de cobertura de código. Esse relatório é gerado na pasta target/site/jacoco do projeto.

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.11</version>
    <executions>
        <execution>
            <id>preparation</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>verify</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

No exemplo acima, o plugin jacoco-maven-plugin é configurado para executar na fase verify do ciclo de vida default do Maven. Isso significa que o relatório de cobertura de código será gerado após a execução dos testes. O goal prepare-agent é utilizado para preparar o ambiente para a execução dos testes. Note que cada execução necessita de um identificador (id) próprio.

Para adicionar o relatório no Jacoco no cilco de vida de site, é necessário primeiro adicionar o plugin maven-site-plugin no arquivo pom.xml do projeto. Este plugin é responsável por gerar o site do projeto, que inclui o relatório de cobertura de código.

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>4.0.0-M13</version>
</plugin>

Depois de adicionar o plugin maven-site-plugin, é necessário adicionar a tag reporting no arquivo pom.xml do projeto. A tag reporting é utilizada para configurar os relatórios que serão gerados no ciclo de vida site do Maven. Observe o exemplo abaixo:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.11</version>
        </plugin>
    </plugins>
</reporting>
Rodrigo Prestes Machado
CC BY 4.0 DEED

Copyright © 2024 RPM Hub. Distributed by CC-BY-4.0 license.