maven(20)-surefire测试

小心!你的Maven测试类命名可能正在拖慢构建速度——Surefire插件匹配规则详解与优化实践 本文深入解析Maven Surefire插件的测试类匹配机制,揭示测试类命名对构建速度的影响。通过优化命名规范、配置includes/excludes规则及并行测试策略,可显著提升构建效率。特别针对maven-surefire-plugin的性能瓶颈,提供实测数据与最佳实践方案,帮助开发者节省30%以上的构建时间。 阅读详情

我在19篇生命周期讲过,当执行package或install的时候会自动执行测试,而测试周期的内置插件就是surefire。

pom.xml

surefire可以执行junit测试用例,首先引入junit依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

测试用例

surefire默认会执行src/test/java目录中符合以下命名规则的测试类。

**/Test*.java:所有以Test开头的类

**/*Test.java:所有以Test结尾的类

**/*TestCase.java:所有以TestCase结尾的类

如上图:我现在创建一个HelloTest,以Test结尾,会被surefire生命周期触发,代码如下

public class HelloTest {
	
	ResourceBundle bundle;
	
	//在测试之前执行一些初始化工作
	@Before
	public void before(){
		bundle = ResourceBundle.getBundle("config/application");
	}
	
	//测试方法,一个类中可以有多个测试方法
	@Test
	public void hello(){
		Assert.assertEquals("test",bundle.getString("spring.profiles.active"));
	}
	
	//在测试之后执行
	@After
	public void after(){
		System.out.println("end");
	}
}	

在@Before中初始化,获取以下properties文件  

在@Test中,比较properties中的spring.profiles.active参数值是否是test,是则测试成功,不是则测试失败。

在16篇中讲过,一个项目可以有多个不同的环境,如果要把项目发布到测试服务器,需要先把开发环境改成测试环境。有时候会忘了改,这个用例的作用就是在发布前,检查properties参数配置是否是test环境,以防止将错误的环境打包发布。

执行测试

19篇讲过,在生命周期中,如果执行测试阶段之后的命令如package和install,会先自动执行surefire测试,如果测试成功,会顺利向后执行。如果测试不成功,程序会报错并终止执行。现在执行package命令。


以上是我的执行结果,在2.错误原因中可以看到,发布的预期值是test,但是我properties文件中的参数值实际是dev,说明环境配置是错的,不能发布。这个测试报告会保存到target\surefire-reports目录。


如上图,其中txt文件是文本格式的错误报告,xml文件则可以在eclipse中通过junit窗口打开查看错误报告

surefire插件常用配置

19篇讲过,在自己项目的pom.xml中配置内置插件参数,可以覆盖默认的参数,以下是几个比较有用的配置
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.20</version>
				<configuration>
					<!-- 改变测试用例的默认命名规则,只执行Test结尾的测试  -->
					<includes>
						<include>**/*Test.java</include>
					</includes>
					<!-- 排除测试用例,虽然以Test结尾,但是不会执行  -->
					<excludes>
						<exclude>hello/HelloTest.java</exclude>
					</excludes>
					<!-- 跳过生命周期的测试阶段 -->
					<skip>true</skip>
				</configuration>
			</plugin>
Maven知识点-插件maven-surefire-plugin Maven本身并不是一个单元测试框架,Java 世界中主流的单元测试框架为JUnit 和TestNG。Maven 所做的只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者TestNG的测试用例。这一插件就是maven-surefire-plugin,可以称之为测试运行器(Test Runner),它能很好地兼容JUnit 3JUnit4以及TestNG。如果你懂的Maven的生命周期(不熟悉可以先看一下这里->),那你应该知道生命周期阶段test被定义为“使用单元测试框架运行测试” 阅读详情

相关推荐

Maven与JUnit5单元测试实战:从注解、断言到Surefire插件配置

单元测试是保障软件质量的核心实践,它通过隔离验证单个代码单元的行为,确保逻辑正确性。其原理在于利用测试框架提供的注解、断言等机制,模拟各种输入和场景,自动验证代码输出是否符合预期。在Java生态中,JUnit5作为新一代测试框架,通过模块化设计和丰富的注解体系,显著提升了测试的灵活性和可维护性。结合Maven构建工具,开发者可以在test生命周期阶段自动化执行测试,并利用Surefire插件进行精细控制,如并行执行、测试筛选等,从而实现高效的持续集成流程。本文聚焦于Maven与JUnit5的深度整合,通过实

chouzu8463的博客 379

CI持续集成自动化测试——surefire插件详细介绍:mvn test 和mvn surefire:test 的区别

mvn test 和 的区别 mvn surefire:test 以这两种方式运行它的区别在于: mvn -Dtest=DatabaseTest test mvn -Dtest=DatabaseTest surefire:test 我可以看到测试显示: 执行mvn test 执行的输出 [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rac.mybatis --- [INFO] Using '...

u011441473的专栏 2581

【Maven】maven 插件 maven-surefire-plugin

1.maven-surefire-plugin简介 转载:https://leokongwq.github.io/2016/10/12/maven-test.html Maven本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者TestNG的测试用例。这个插件就是maven-surefire-plugin,也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4以及TestNG。 在默认情况下,maven-surefire-pl.

九师兄 2万+

maven-surefire-plugin

maven-surefire-plugin Surefire 插件在test构建生命周期阶段用于执行应用程序的单元测试。 maven-surefire-plugin官网 (opens new window) # 一、介绍 如果你执行过mvn test或者执行其他maven命令时跑了测试用例,你就已经用过maven-surefire-plugin了。 maven-surefire-plugin是...

西魏陶渊明的博客 2万+

用COMSOL计算复合材料板频散曲线:从建模到绘图全流程

导波在板结构中传播时,不同频率成分的速度不同,即频散现象。理解频散曲线是识别导波模态、确定相速度与群速度的基础,也是无损检测和结构健康监测中信号解读的关键。对于碳纤维增强复合材料等各向异性板,频散关系更加复杂,传统解析方法难以求解,数值仿真成为主流手段。通过COMSOL结合周期性边界条件与特征频率扫描,可以高效计算出复合材料板的频散曲线,进而绘制相速度和群速度随频率变化的图谱,为实验模态识别、换能器激励频率选择提供依据。本文以一个2毫米单向碳纤维板为例,详细介绍几何建模、材料参数设置、网格收敛验证、参数扫描

weixin_31412781的博客 235

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

Maven的单元测试插件maven-surefire-plugin详解

不配置 maven-surefire-plugin 插件,无法使用 Maven 的测试功能,在 pom.xml 文件中添加如下的配置: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> </plugin>

liaowenxiong的博客 1万+

Ubuntu 22.04 安装 IsaacLab 2.1.0

本文介绍了IsaacLab的完整安装流程:1)创建Python3.10虚拟环境;2)安装PyTorch2.5.1(CUDA11.8);3)升级pip并安装IsaacSim4.5.0;4)克隆IsaacLab仓库;5)运行安装脚本(需接受EULA)。若遇cmake缺失错误,需执行sudo apt安装。安装完成后可通过Ant-v0训练任务验证,成功运行后将显示IsaacSim窗口和训练完成提示。注意:IsaacSim不同版本可共存于不同环境。

weixin_47880303的博客 2226

测试插件maven-surefire-plugin

1. 配置 1.1 参考:http://maven.apache.org/surefire/maven-surefire-plugin/ 1.2 配置: plugin> groupId>org.apache.maven.pluginsgroupId> artifactId>maven-surefire-pluginartifactId

leonliu06的博客 448

最短线性递推式求解与有理函数重建

这一算法来自于我们对“线性递推式拟合”的视角转换,其后得到的算法是自然的。 引理 1. 如果两个有理分式 p1/q1,p2/q2p_1/q_1, p_2/q_2p1​/q1​,p2​/q2​ 均有 deg⁡p<n,deg⁡q≤n\deg p<n, \deg q\leq ndegp<n,degq≤n 且展开式 p1/q1≡p2/q2(modx2n)p_1/q_1 \equiv p_2/q_2 \pmod {x^{2n}}p1​/q1​≡p2​/q2​(modx2n),那么 p1/q1=p2/

Entropy Increaser 的博客 2592

04目标检测-Two-stage的目标检测算法

前面我们对进行了对比分析,同时上一篇我们介绍了传统算法在目标检测的原理和效果,此篇我们记录了我学习目标检测算法的深度,深入讲述一下深度学习算法在目标检测的原理和效果。原文链接:https://blog.youkuaiyun.com/qq_41946216/article/details/132800752。版权声明:本文为优快云博主「爱吃面的猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。One-stage(YOLO和SSD系列):直接回归目标位置。

qq_41946216的博客 3654

Maven - 测试相关配置 surefire插件与测试报告生成

本文介绍了Maven中Surefire插件的测试配置与高级使用技巧,主要内容包括: Maven测试生命周期:解释了test和verify阶段的作用,强调测试在构建流程中的重要性。 Surefire与Failsafe插件对比:详细说明了两者的区别、适用场景和执行行为差异。 基础配置:展示如何快速创建测试类并执行测试,说明默认行为特点。 高级配置技巧: 测试包含/排除策略 使用JUnit5标签分组测试 并行测试执行配置 失败重试机制 最佳实践建议:提供单元测试与集成测试的分离方案、命名规范等实用建议。 文章通过

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

Robot_PLC_HMI_Automation 6100

Maven Surefire插件:精确控制TestNG测试套件的执行

正确地在命令行中通过Maven Surefire插件指定TestNG测试套件是提高测试效率和灵活性的关键。核心在于理解并使用surefire.suiteXmlFiles属性来覆盖pom.xml中的默认配置。掌握这一技巧,可以帮助开发者更精确地控制测试执行流程,从而更有效地进行调试和验证。

weixin_43749798的博客 1764

大模型——dify实战通过dify搭建你自己的图片识别服务

本文介绍了如何通过Dify平台搭建图片识别服务。首先创建工作流,添加支持图片上传的字段,并配置视觉模型qwen-vl-max-latest进行图像分析。文章详细说明了各步骤操作,包括字段设置、模型选择、提示词编写等。在测试阶段发现URL解析问题后,提供了解决方案:修改Dify的.env文件,调整FILES_URL配置并重启服务。最终成功实现上传图片或输入图片链接后,AI能够准确分析并返回简洁的图片内容描述。这一方案适用于需要快速部署图像识别功能的场景。

1930

数据库系统概论第五版课后习题答案第十二章

对元组的插入、删除、修改;语义检查的具体做法是,DBMS读取数据字典,检查是否存在与该语句中的表、视图或索引等要创建的对象相同的对象名,检查该用户是否具有创建数据库对象的权限。答:操作系统提供的封锁机制和DBMS的封锁机制在封锁对象、封锁对象的状态、封锁的粒度、及封锁的类型上存在很大的差别,操作系统的封锁机制不能直接应用在DBMS中,DBMS必须重新设计,来满足复杂的封锁需求。数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。

wenling54321的博客 695

Maven中测试插件(surefire)的相关配置及常用方法

maven-surefire-plugin的 高级用法 和 配置详解 使用surefire配置 testNG和Junit测试在项目中

Dragon's Life 5万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

maven 打包跳过测试 Maven测试插件 Surefire

在 Maven 项目中,用户基于 JUnit 或 TestNG 编写好了测试代码,接下来怎么执行,并且形成测试报告呢?具体执行测试代码,需要靠 maven-surefire-plugin 插件来实现。 Surefire 插件简介 Maven 本身虽然不是测试框架,但是 Maven 能够在构建执行到特定的生命周期阶段的时候,通过调用插件执行基于 JUnit 和 TestNG 编写好的测试用例。这个插件就是 maven-surefire-plugin 插件,它能很好地兼容 JUnit 系列和 TestNG 测试

qq_42747210的博客 1353

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Maven插件学习(二)——测试插件maven-surefire-pluigin

maven测试插件

螺旋小蜗的专栏 2580

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Maven之Surefire插件

在编写写Junit脚本后,进行全网回归的时候,肯定会接触Maven的surefire插件。 基本配置如下: org.apache.maven.plugins maven-surefire-plugin -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m ${basedir}/target/te

蜗牛架构师 3万+

Maven Surefire Plugin 做测试用例基础执行管理

在测试工作场景中,经常会遇到下面的问题:

自动化测试技术栈 1253

Maven Surefire 插件简介

Maven Surefire 插件是 Maven 项目中运行单元测试的重要工具。通过使用此插件,可以确保在构建过程中运行单元测试,有助于保持代码质量并及早发现问题。本指南全面介绍了设置和使用 Maven Surefire 插件的方法,并提供了一个实际示例帮助您入门。掌握这些知识后,您可以有效地管理和运行 Maven 项目中的单元测试。

疯一样的码农 1932

Maven Surefire Plugin

Maven Surefire Plugin 最新版本新特性详解 Maven Surefire Plugin 是用于运行单元测试和集成测试的重要工具,支持 JUnit、TestNG 等测试框架。插件的新版本引入了许多新特性和配置选项,这些功能提升了测试执行的性能、灵活性和并发能力。在本节中,我们将详细介绍 Surefire Plugin 的各个配置选项及其用途,并结合实际使用场景和示例进行讲解。 1. forkCount 作用: forkCount 选项指定在测试过程中 JVM fork 的数量。多 JVM

pumpkin84514的博客 2844

maven插件之maven之maven-surefire-plugin

1.maven-surefire-plugin是个什么鬼? 如果你执行过 mvn test 或者执行其他maven命令时跑了测试用例,你就已经用过 maven-surefire-plugin 了。 maven-surefire-plugin 是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的 surefire:test 命令会默认绑定maven执行的 test 阶段。

云南小伙闯深圳 6418

maven surefire plugin介绍

示例 <!-- 测试运行器,生成测试报告 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.0</version><!--$NO-MVN-MAN-VER$ -->.

F7ANTY的专栏 1444
上一篇: centos(10)-tar.gz解包和符号链接
下一篇: spring boot(24)-test测试
free_java
博客等级 码龄10年 664粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值