如何在应用构建时打印JUnit测试结果日志
在构建时查看JUnit测试用例的运行统计及状态
不管你用Maven还是Gradle,都可以通过配置构建工具实现这个需求,具体操作如下:
Maven 配置
Maven默认通过Surefire插件执行JUnit测试,默认会在控制台输出测试汇总统计(总运行数、成功/失败/跳过数量),如果想看到每个测试用例的具体状态,需调整插件配置:
在项目的pom.xml中,添加或修改Surefire插件的配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <!-- 使用最新稳定版 --> <configuration> <!-- 强制在控制台输出测试结果,不写入文件 --> <useFile>false</useFile> <!-- 始终显示测试汇总信息 --> <showSummary>always</showSummary> <!-- 确保匹配所有测试类 --> <includes> <include>**/*Test.java</include> </includes> </configuration> </plugin> </plugins> </build>
执行mvn test或mvn clean install时,控制台会打印每个测试用例的名称、运行状态(成功/失败/跳过),最后输出总统计数据。
Gradle 配置
Gradle的Java插件自带测试任务,默认输出测试汇总,要查看每个测试的详细状态,需在构建脚本中配置test任务的日志选项:
Groovy DSL 示例
test { testLogging { // 指定输出通过、跳过、失败的测试事件 events 'passed', 'skipped', 'failed' // 可选:显示测试用例中的标准输出/错误 showStandardStreams = true // 始终显示测试汇总统计 showSummary = 'always' } }
Kotlin DSL 示例
tasks.test { testLogging { events("passed", "skipped", "failed") showStandardStreams = true showSummary = TestLogging.ShowSummary.ALWAYS } }
执行gradle test或gradle build时,控制台会逐一打印每个测试用例的状态,最后输出总运行数、成功/失败/跳过的数量统计。
额外提示
如果使用JUnit 5,还可以通过自定义TestExecutionListener收集测试数据并输出,但这种方式需要编写代码,适合定制化日志格式的场景。对于大多数常规构建场景,直接配置构建工具的方式更简单高效。
内容的提问来源于stack exchange,提问作者Janvi Kadu
相关产品推荐
相关产品推荐

