概览
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>
版权归原作者 Gasoline_T 所有, 如有侵权,请联系我们删除。