讲师中心 微信公众号

工具推荐

视频效率加速
Laper
Laper

剧本策划到成片协作

剧云
剧云

中文短剧剧本制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

updream

一键生成高质量推广成片

如何在 Maven 3.8.6 中正确运行 JUnit 5 测试用例

大枫君_4481

大枫君_4481

发布时间:2026-05-20 15:04:02

|

469人浏览过

|

来源于php中文网

原创

如何在 Maven 3.8.6 中正确运行 JUnit 5 测试用例

本文详解 maven 3.8.6 环境下 junit 5 测试无法执行的常见原因及解决方案,重点解决 surefire 插件版本不兼容、jupiter 引擎未正确集成等问题,并提供可直接复用的配置示例。

本文详解 maven 3.8.6 环境下 junit 5 测试无法执行的常见原因及解决方案,重点解决 surefire 插件版本不兼容、jupiter 引擎未正确集成等问题,并提供可直接复用的配置示例。

在 Maven 3.8.6 中运行 JUnit 5 测试失败(如 mvn test -Dtest=TestRunner 无响应或静默跳过),通常并非代码或测试类本身问题,而是构建工具链的版本兼容性缺陷所致。Maven 3.8+ 默认禁用 HTTP 仓库且对插件元数据校验更严格,而旧版 maven-surefire-plugin(如 2.22.0)对 JUnit 5 的原生支持不足,尤其在引擎发现(test engine discovery)和模块路径(module-path)处理上存在已知局限。

✅ 根本解决方案:升级至兼容版本组合
请将 pom.xml 中的 Surefire 插件与 JUnit Jupiter 引擎同步升级为以下经过验证的最新稳定版本:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M9</version> <!-- 或 3.0.0(推荐) -->
    <configuration>
        <includes>
            <include>**/*Test.java</include>
            <include>**/Test*.java</include>
        </includes>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version> <!-- 或 5.10.2(最新 LTS) -->
        </dependency>
    </dependencies>
</plugin>

⚠️ 关键注意事项:

  • 勿遗漏 JUnit 5 API 依赖:仅声明 junit-jupiter-engine 不足以编译测试类,必须同时添加 junit-jupiter-api(作用域 test):
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.9.1</version>
        <scope>test</scope>
    </dependency>
  • 避免混合测试框架干扰:若项目中同时存在 TestNG 和 JUnit 5 测试,请确保 TestRunner.java 使用 @Test 注解来自 org.junit.jupiter.api.Test,而非 org.testng.annotations.Test;否则 Surefire 可能因检测到多个引擎而退回到默认行为(如仅执行 TestNG)。
  • 验证测试类结构:JUnit 5 测试类无需继承任何基类,但需满足以下任一命名约定(由 Surefire 默认 includes 规则匹配):
    • 类名以 Test 结尾(如 CalculatorTest.java)
    • 类名以 Tests 结尾(如 IntegrationTests.java)
    • 类名以 TestCase 结尾(如 DatabaseTestCase.java) 若使用自定义名称(如 TestRunner),建议显式配置 或改名以符合规范。

? 快速验证步骤:

  1. 执行 mvn clean test-compile 确认测试编译通过;
  2. 运行 mvn surefire:test(绕过生命周期钩子,直调 Surefire)观察详细日志;
  3. 检查输出中是否包含 Running org.example.TestRunner 及 Tests run: X, Failures: Y —— 成功标志;
  4. 如仍失败,追加 -X 参数启用 debug 日志:mvn test -X -Dtest=TestRunner,重点关注 surefire 和 junit-platform 相关行。

总结:Maven 3.8.6 与 JUnit 5 的协同依赖于 Surefire ≥3.0.0 + Jupiter Engine ≥5.8.2 的组合,旧版插件因缺少 JUnit Platform Launcher 集成能力而无法识别 @Test 方法。升级后无需额外配置即可自动启用 Jupiter 引擎,实现零侵入式迁移。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

4640

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

389

2026.05.09

软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

5210

2023.10.13

java测试工具有哪些
java测试工具有哪些

java测试工具有JUnit、TestNG、Mockito、Selenium、Apache JMeter和Cucumber。php还给大家带来了java有关的教程,欢迎大家前来学习阅读,希望对大家能有所帮助。

3601

2023.10.23

Java 单元测试
Java 单元测试

本专题聚焦 Java 在软件测试与持续集成流程中的实战应用,系统讲解 JUnit 单元测试框架、Mock 数据、集成测试、代码覆盖率分析、Maven 测试配置、CI/CD 流水线搭建(Jenkins、GitHub Actions)等关键内容。通过实战案例(如企业级项目自动化测试、持续交付流程搭建),帮助学习者掌握 Java 项目质量保障与自动化交付的完整体系。

1246

2025.10.24

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

80

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

40

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

80

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

60

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn