0


用Intellij/Maven插件查看测试覆盖率和测试报告

概览

Intellij自带查看测试覆盖率和测试报告的工具,也可以用maven插件,集成jacoco。

Intellij

用 run 'test' with coverage

之后会有一个coverage侧边栏,点击可生成测试覆盖率文件

在测试结果栏点击可导出测试报告,具体参考链接Testing | IntelliJ IDEA Documentation

Maven

配置

maven不会自动去发现JUnit5测试,在没有任何配置执行mvn clean test的时候Tests run的数量为0

将maven surefire plugin 配置到pom文件中,加上version信息,此时执行mvn clean test命令可以发现JUnit5测试文件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M5</version>
</plugin>

查看测试报告

用maven插件

此时执行mvn clean test之后可以在target/site目录下发现测试报告,但是是未经过渲染的。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>3.0.0-M5</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

再次执行mvn site -DgenerateReports=false可以渲染测试报告,false表示不覆盖执行mvn clean test命令生成的测试报告。

但是当有测试失败时,mvn插件不会生成测试报告,此时需要配置,表示有错误测试时仍然生成测试报告。

     <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>

                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>

            </plugin>

用Jacoco (Java Code Coverage)

配置

      <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.7</version>

                <executions>
                    <execution>
                        <id>jacoco-prepare</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>

                    <execution>
                        <id>jacoco-report</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

执行mvn clean test后可在target/site/jacoco目录下发现测试报告。

Note

mvn的测试报告默认使用测试名,在某些场景下需要用DisplayName来展示测试结果,同样需要配置,具体链接Maven Surefire Plugin – Using JUnit 5 Platform

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>

                <configuration>

                    <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
                        <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
                    </statelessTestsetReporter>
                </configuration>

            </plugin>
标签: 单元测试

本文转载自: https://blog.csdn.net/weixin_45181567/article/details/129802784
版权归原作者 Gasoline_T 所有, 如有侵权,请联系我们删除。

“用Intellij/Maven插件查看测试覆盖率和测试报告”的评论:

还没有评论