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

JUnit Jupiter 5.8.x使用@Order配置测试类执行顺序不生效问题

JUnit 5测试类@Order配置不生效排查方案

1. 依赖缺失问题

你当前只引入了junit-jupiter-api,这只是JUnit5的接口包,缺少实际的测试执行引擎实现。需要补充junit-jupiter-engine依赖:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
</dependency>

也可以直接引入统一的聚合依赖,避免版本不一致问题:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
    <type>pom</type>
</dependency>

2. 配置文件路径/生效范围问题

  • 确认junit-platform.properties文件确实放在src/test/resources根目录下,编译后会出现在target/test-classes根目录,没有被maven的resource过滤规则排除
  • 如果你是在IDE中执行测试,需要触发maven的test-compile指令确保配置文件被正确拷贝到类路径下,部分IDE默认不会自动同步资源文件变更

3. 测试类包路径规则问题

如果你的两个测试类不在同一个父包下,部分构建工具/IDE的测试扫描逻辑会分批次加载不同包的测试类,导致全局Order不生效。可以将两个测试类放在同一个包下验证,或者显式在测试套件中指定要排序的类范围:

@Suite
@SelectClasses({Test_1.class, Test_2.class})
public class OrderTestSuite {
}

直接执行该测试套件即可按Order排序执行。

4. 构建工具测试插件配置问题

如果你使用maven-surefire-plugin执行测试,需要确认插件版本在2.22.0以上,低版本的surefire插件不支持JUnit5的类排序能力。建议升级插件到3.0+版本:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.1.2</version>
        </plugin>
    </plugins>
</build>

内容的提问来源于stack exchange,提问作者Santiago Purucker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:36:03