如何在Maven构建时让JUnit5/Jupiter打印测试方法名及执行信息
解决Maven Verify时控制台不显示单个测试方法详情的问题
默认执行mvn clean verify时,Maven仅会打印测试类名称,不会逐个展示类中的测试方法、执行时间及状态(比如你的KeyStoreUtilsShould类包含35个测试用例却无法直接看到)。要实现需求,只需调整Maven Surefire插件的配置即可,有两种方式可选:
方式一:临时通过命令行参数生效
无需修改项目配置,直接执行带参数的命令:
mvn clean verify -Dsurefire.useFile=false -Dsurefire.verbose=true
方式二:修改pom.xml永久生效
在项目的pom.xml中添加或更新maven-surefire-plugin的配置,让每次构建都自动输出详细测试信息:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <!-- 建议使用最新稳定版 --> <configuration> <!-- 关闭仅生成文件日志,强制输出到控制台 --> <useFile>false</useFile> <!-- 开启详细模式,展示每个测试方法的执行细节 --> <verbose>true</verbose> <!-- 设置纯文本输出格式,适配控制台阅读 --> <reportFormat>plain</reportFormat> </configuration> </plugin> </plugins> </build>
配置说明
useFile=false:关闭Surefire默认仅生成本地日志文件的行为,将测试输出直接打印到控制台verbose=true:开启详细输出模式,会逐个列出每个测试方法的名称、执行耗时、通过/失败状态reportFormat=plain:确保输出为纯文本格式,避免控制台出现乱码或格式错乱
配置完成后再次执行mvn clean verify,就能看到类似以下的详细输出:
[INFO] Running com.hakky54.ayza.util.KeyStoreUtilsShould
[INFO] com.hakky54.ayza.util.KeyStoreUtilsShould > generateKeyPairWhenGivenValidParameters() PASSED in 0.012 s
[INFO] com.hakky54.ayza.util.KeyStoreUtilsShould > loadKeyStoreWhenGivenValidFile() PASSED in 0.008 s
...(所有35个测试方法的执行信息依次展示)
内容的提问来源于stack exchange,提问作者Hakan54
相关产品推荐
相关产品推荐

