You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven显示JUnit 5中@Test方法的@DisplayName?

JUnit 5 @DisplayName 不显示在Maven Surefire测试输出中的解决办法

问题根源

你使用的maven-surefire-plugin 2.22.2版本对JUnit 5的@DisplayName注解支持不完善,默认输出逻辑不会解析并展示这个注解的内容,所以终端/CI环境里只能看到测试方法名,看不到自定义的测试描述。

解决办法

1. 升级Surefire插件(优先推荐)

直接把插件升级到3.0.0-M5及以上的稳定版本(比如最新的3.2.5),这些版本完全适配JUnit 5的@DisplayName,终端输出会自动展示注解里的自定义描述。

在pom.xml里更新插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.2.5</version>
            <dependencies>
                <!-- 搭配对应版本的JUnit 5引擎,确保兼容性 -->
                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>5.10.0</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

2. 旧版本插件的临时配置(仅应急使用)

如果暂时没法升级插件,可尝试给2.22.2版本添加以下配置,部分场景下能触发@DisplayName的展示,但效果不如升级版本稳定:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <configuration>
        <useFile>false</useFile>
        <reportFormat>plain</reportFormat>
        <showSuccesses>true</showSuccesses>
        <dependencies>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.6.2</version> <!-- 适配2.22.2的JUnit 5版本 -->
            </dependency>
        </dependencies>
    </configuration>
</plugin>

验证

配置完成后运行mvn test,终端输出的测试结果里,每个测试用例都会显示@DisplayName中定义的描述文本,而不是默认的方法名,CI环境的测试报告也会同步展示这些内容。

内容的提问来源于stack exchange,提问作者Manuel Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:52:11