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

Heroku使用JUnit5推送应用时构建失败如何解决?

问题排查与解决步骤

1. 修正测试类导入语句

两类报错均由JUnit版本API不匹配导致:JUnit 5 已将断言类从JUnit 4的org.junit.Assert迁移到org.junit.jupiter.api.Assertions路径下,你当前测试类第3行使用了JUnit 4的导入写法,在仅引入JUnit 5依赖的环境下自然找不到对应类,同时因为目标导入的包不存在,编译器会抛出静态导入仅支持类和接口的报错。

错误的JUnit 4 导入写法:

import static org.junit.Assert.*;

替换为JUnit 5 对应写法即可解决:

import static org.junit.jupiter.api.Assertions.*;

2. 校验Maven依赖配置

检查项目pom.xml文件的依赖声明,避免版本冲突:

  • 确保已经正确引入JUnit 5核心依赖,两个依赖的版本号保持一致即可:
<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.x.x</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.x.x</version>
        <scope>test</scope>
    </dependency>
</dependencies>
  • 移除所有junit:junit格式的JUnit 4依赖声明。如果确实需要兼容旧的JUnit 4代码,可以额外引入JUnit Vintage引擎依赖,不推荐混合使用两套API增加维护成本。

3. 本地验证后重新推送

修改完成后在本地执行mvn test命令确认测试编译、运行无异常,再重新推送代码到Heroku即可正常完成构建。

内容的提问来源于stack exchange,提问作者Renato Romão

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:06:02