eclipse 中 maven项目 junit测试空指针异常_Junit实现自动化测试,今天成真了!

c9e1a55a50895e4476273b746bea0bfc.gif

出品 | 51Testing软件测试网

背景

随着技术的发展,Devops的概念越来越深入人心,Devops使得构建、测试、发布软件能够更加地快捷、频繁和可靠。DevOps对应用程序发布的有着重要影响,具备DevOps能力则发布软件产品时风险更低,其中一个重要的原因就是自动化,减少了人工干预,强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。而实现软件发布自动化的一个重要工具就是Jenkins。

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目。Jenkins通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

然而Jenkins只负责软件产品的发布,本身并不负责软件的测试工作。怎样才能在Jenkins集成测试功能,使软件发布时自动进行一些测试工作,减少人工测试成本呢?比如Jenkins集成Junit。而说到Junit,则无需过多介绍,其是一个被广泛使用的Java语言的单元测试框架。Junit以前一般需要程序员手动执行,不符合Devops的标准,本文就探讨了Jenkins集成Junit自动测试的方法。

Jenkins集成Junit自动测试

笔者使用GIT进行版本管理,构建工具为Maven,spring boot工程。前期已实现了使用Jenkins进行程序自动构建与发布,这里不再具体阐述,仅以一张图做阐述。

f39140fae555e590bff081cef8707786.png

本章具体讲述如何在Jenkins集成Junit进行自动测试。

首先使用maven创建一个项目,这里以eclipse为例,单击New Maven Project

bac56326f66cda92b7d95292c22b1395.png

简要填写下相关GroupID和Artifact ID并以pom包的形式创建父文件。

创建完成后,在test父文件的基础上创建maven module,右键新的maven工程。

5b975b555bf8dd584575688f2ebc7f97.png

选择Maven Module

bb730c701f865bcdf5461263dba58d59.png

填写一个工程名称。

创建完工程后,我们简要编写下相关业务逻辑代码,业务逻辑的代码全部写在src/main/java下,如图所示

e6da483d76f990bf52b6ace60139cfb1.png

之后,我们需要在java工程中引入相关依赖,以maven为例,pom文件增加如下部分:

<dependency>  <groupId>org.springframework.bootgroupId>  <artifactId>spring-boot-starter-testartifactId>dependency>

spring-boot-starter-test这个依赖在spring boot框架中集成了单元测试所需要的各种注解和功能。

其次,在src/main/test的目录下创建测试案例,maven会自动选择这个目录下的类来进行测试案例的执行。

11948d39f565a31589ffa996f1cc2b4f.png

编写测试程序,主要需要用到几个注解:@RunWith,@SpringBootTest,@Before,@Test。其中@RunWith是Junit4提供的注解,将Spring和Junit链接了起来。假如使用Junit5,不再需要使用@ExtendWith注解,@SpringBootTest和其它@Test默认已经包含了该注解。@SpringBootTest替代了spring-test中的@ContextConfiguration注解,目的是加载ApplicationContext,启动spring容器。使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类。@Before,@Test则是Junit的注解,before下的方法一般负责一些准备工作,比如登录操作等,test下则是具体的测试方法。代码示例如下:

38e8e404e4855dacff17c5d398052577.png

在测试程序中,一般一个test方法对应一个需要测试的后台方法,并需要根据实际情况及时修改优化。

最后,我们需要在Jenkins配置一下,将maven的test指令加入到配置项中具体如下:

2cb28bcfc9b0c6311e2084a55eb553d8.png

通过上述操作后,我们每次发布程序时,Jenkins除了自动构建发布程序外,还会通过maven命令自动执行对应的Junit测试程序,并在每次构建的任务显示测试结果。测试结果图示例如下:

95353676f3cf962dee1b6084de7a9759.png

通过邮件配置,可将测试结果等情况以邮件形式发送给相关技术人员,配置信息如下。

48eba7d13df36954aea4580366f37111.png

小结

通过本文,我们了解了如何在Jenkins集成Junit单元测试并自动执行。通过集成,使单元测试工作自动化,减少了测试人员的工作量,极大的方便了测试工作。不过,我们需要及时维护相应的测试程序,才能更加准确的体现测试结果。

9aafda742a6cd8ea280361d7b4ae61dd.gif

477f6cdae68505735e11b9c6fb789c5f.png

推荐阅读

点击阅读☞Windows系统下Jenkins集成Appium自动化测试(上)

点击阅读☞技术加持|Jenkins远程新增Mac节点

点击阅读☞Jenkins集成appium自动化测试(Windows篇)

点击阅读☞只要一步,让Jenkins自动发送邮件

点击阅读☞自从学会Jenkins自动化,我整个人都升华了

974219c79c8ca957e9a905a1dc6861f6.gif

2d28d3e06be9105ef15b86dfd302359c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值