您好!欢迎来到源码码网

Spring Boot 工程中 maven-surefire-plugin 测试执行失败及解决方法

  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2025-10-13 10:57
  • 阅读:452

Spring Boot 工程编译时遇到maven-surefire-plugin的测试执行失败错误(Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.5.3:test),通常与测试环节相关。以下是常见原因及解决方法:

1. 测试用例执行失败

• 原因:最常见的是测试用例(*Test.java)运行时抛出异常(如断言失败、空指针等),导致 Surefire 插件执行中断。

• 解决

◦ 查看错误日志中更详细的堆栈信息,找到具体失败的测试类和方法(通常在[ERROR] Tests run: X, Failures: Y, Errors: Z之后)。

◦ 修复对应测试用例的逻辑错误,确保测试能正常通过。

2. 测试依赖或环境问题

• 原因:测试代码依赖的类、配置或外部资源(如数据库、服务)缺失或异常,导致测试无法运行。

• 解决

◦ 检查测试类中是否引用了未正确初始化的资源(如@Autowired Bean 未加载)。

◦ 确保测试环境依赖(如数据库)已启动,或使用@Mock等注解模拟依赖。

◦ 若使用 Spring Boot 测试,确保测试类标注了@SpringBootTest,且上下文能正常加载。

3. Surefire 插件版本或配置冲突

• 原因:插件版本与 JDKSpring Boot 版本不兼容,或配置有误(如测试类路径、排除规则等)。

• 解决

◦ 检查版本兼容性Spring Boot 通常会管理 Surefire 插件版本,建议移除手动指定的版本,使用 Spring Boot 父工程的默认版本:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <!-- 移除version,使用spring-boot-starter-parent管理的版本 -->
    </plugin>
  </plugins>
</build>

◦ 排除特定测试:若某些测试暂时无需执行,可配置插件跳过:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <!-- 排除单个测试类 -->
    <excludes>
      <exclude>**/ProblematicTest.java</exclude>
    </excludes>
  </configuration>
</plugin>

4. 临时跳过测试环节

• 若需紧急编译打包,可临时跳过测试(不推荐长期使用,需确保测试最终能通过):

◦ 命令行执行:mvn clean package -DskipTests(跳过测试执行,但编译测试代码)

◦ 或:mvn clean package -Dmaven.test.skip=true(完全跳过测试代码的编译和执行)

5. 其他常见问题

• JDK 版本问题:确保 JDK 版本与 Surefire 插件兼容(如 JDK 17 + 建议使用 Surefire 3.0+)。

测试类命名不符合规范:默认情况下,Surefire 只执行命名为*Test.java、Test*.java、*Tests.java的类,若测试类命名不符,会被忽略(但不会报错,需结合具体日志判断)。

关键步骤

1. 仔细查看错误日志中紧跟在错误提示后的具体测试失败信息(堆栈跟踪),定位问题根源。

2. 优先修复测试用例的逻辑或环境依赖问题,确保测试可正常运行。

3. 若涉及插件配置,尽量遵循 Spring Boot 的默认配置,避免版本冲突。


最终经过一系列的排查,原因是TlsSocketStrategy.class 文件的缺失导致,由于httpclient5:5.3版本及以下不存在该类文件。

所以将httpclient5的依赖版本直接升级到5.4或者更高版本问题即可街道解决。

<!-- 核心 HTTP 客户端功能 -->
    <dependency>
        <groupId>org.apache.httpcomponents.client5</groupId>
        <artifactId>httpclient5</artifactId>
        <version>5.4</version>
    </dependency>


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 常用测试压力工具使用介绍
  • 常用测试压力工具使用介绍
  • ab 是 ApacheBench 工具的缩写,它是一个HTTP压力测试工具。让我详细说明如何测试:1. 安装ApacheBenchWindows系统:方法一:安装XAMPP或WAMP(自带ab)下载地址:https://www.apachefriends.org/zh_cn/index.html安装后,ab工具在:C:xamppapacheinab.exe方法二:使
  • 开发工具
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-13 20:27
  • 阅读:82
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:207
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:194
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:93
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:144
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部