Jacoco 生成单元测试覆盖率

jacoco,生成,单元测试,覆盖率 · 浏览次数 : 53

小编点评

## Jacoco 和 Maven 插件配置 以下配置说明如何使用 Jacoco 和 Maven 插件生成测试报告并解决测试报告在失败情况下影响测试报告的生成问题: **1. 引入 Jacoco 插件和 Maven Site 插件** * 在 pom.xml 的 `project` 元素中引入 Jacoco 和 Maven Site 插件: ```xml org.apache.maven.plugins maven-site-plugin 3.7.1 org.jacoco jacoco-maven-plugin 0.8.6 **/mapper/* ``` **2. 引入 Jacoco-report 插件** * 在 `reporting` 元素中引入 Jacoco-report 插件: ```xml org.jacoco jacoco-maven-plugin report ``` **3. 命令行下运行 mvn test** * 使用 `$ mvn clean test` 命令运行测试并生成测试报告。 * 在 `clean` 和 `test` 阶段,Jacoco 插件会自动执行 `prepare-agent` 和 `report` 任务。 * 如果测试失败,Jacoco 插件不会阻止报告的生成,并将测试报告放在 `/target/site/jacoco` 目录下。 * 由于报告已存储在 `jacoco` 目录中,即使测试失败,测试报告仍然可以正常生成。

正文

1. 引入Jacoco插件和Maven Site插件

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.7.1</version>
</plugin>
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.6</version>
    <configuration>
        <excludes>
            <!-- excludes 配置要跳过单元测试的类,一般是实体类或Mybatis Mapper类 -->
            <exclude>**/mapper/*</exclude>
            <exclude>**/model/*</exclude>
            <exclude>**/entity/*</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
            <id>prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2. 引入 Jacoco-report 插件

<!-- 在 pom.xml 的 project 根元素下建立 reporting 元素 -->
<reporting>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

3. 命令行下运行 mvn test

$ mvn clean test

如果要使失败的测试不影响测试报告的生成,使用

$ mvn clean test -Dmaven.test.failure.ignore=true

生成的测试报告位于 /target/site/jacoco 目录下

与Jacoco 生成单元测试覆盖率相似的内容: