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

Docker中RestAssured镜像无法运行JUnit5测试的问题求助

Docker中RestAssured无法运行JUnit5测试的问题排查与修复

核心问题原因

本地mvn clean test正常但Docker环境下JUnit5测试不执行,本质是Maven Surefire插件版本兼容问题+JUnit5依赖不完整:

  • Docker镜像使用的maven:3.3-jdk-8自带的Surefire插件版本过低(默认2.12.x),不支持JUnit5的测试发现与执行;而JUnit4是该版本插件原生支持的,所以降级后能正常运行。
  • 你的pom.xml仅引入了JUnit5的API依赖,缺少运行测试必需的引擎依赖。

具体修复步骤

1. 补充JUnit5引擎依赖

在pom.xml的<dependencies>中添加junit-jupiter-engine依赖:

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

2. 配置兼容JUnit5的Surefire插件

在pom.xml中添加<build>节点,指定支持JUnit5的Surefire插件版本(至少2.22.0以上,这里用3.1.2):

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.1.2</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.9.3</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

3. 修复Docker运行时的交互阻塞问题

测试代码中的Scanner sc = new Scanner(System.in);会导致Docker非交互式运行时卡住(无输入源),直接移除该行即可:

public static void generateReq() {
    // 移除Scanner相关代码
    GenerateRequest requestbody = new GenerateRequest();
    String user = RandomStringUtils.randomAlphanumeric(7);
    requestbody.setUserName(user+"ai");
    String password = RandomStringUtils.randomAlphanumeric(7);
    requestbody.setPassword(password+"ai@!12345");
    requestbodyget = requestbody.getJsonBody(requestbody.getUserName(),requestbody.getPassword());
    System.out.println(requestbodyget);
}

验证修复

  1. 重新构建镜像:
docker build -t koushick1996/myapiimage:3 .
  1. 运行镜像:
docker run koushick1996/myapiimage:3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:14:58