java单元测试_这个工具凭什么风靡全球?DevOps工具链整合之单元测试集成篇

DevOps是一种实践方法,旨在保证高质量的前提下实现研发运维一体化,从而大幅缩短系统变更从提交到部署生产环境的时间。其中,持续集成是DevOps中非常重要的一环,它涉及集成多个开发人员的代码,并不断编译和测试,以便尽可能早的识别缺陷。自动化是持续集成的核心,工具链整合是实现自动化的手段和方法。本文主要讲述DevOps工具链整合中如何实现单元测试工具的集成。

2833e7d83930745e1870da29fe73c967.png

  单元测试工具集成的方法

  单元测试概述

  单元测试是指对软件中的最小可测试单元进行检查和测试,对于单元测试中单元的含义,一般来说,可根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java和C#里单元指一个类等等。单元测试是在软件开发过程中进行的最低级别的测试活动,可以在与程序其他部分相隔离的情况下进行测试。

  集成条件

  持续集成流水线包含单元测试,首先要求研发人员在完成功能开发后,编写对应的功能测试方法或者函数测试方法(单元测试方法),对于规模较大的项目,可以随着功能开发进度逐步编写单元测试方法或者按照功能的优先级和重要程度有选择的编写单元测试方法。

  对于Java开发项目,建议使用Junit工具进行单元测试编写,C#开发项目使用Nunit工具进行单元测试编写。目前这两个单元测试工具TFS平台都有较好的支持,故可以方便的纳入TFS持续集成流水线中。

d2f1f8ecdcd9a27c09deb79891c0410c.png

  核心价值

  通过在持续集成流水线中纳入单元测试活动,可以在开发阶段更快的发现BUG,并且修复他们的成本很低。在软件开发的后期阶段,Bug的发现和修复将变得更加困难,成本会指数级增长;因此应用系统尽可能早的编写单元测试方法和集成对于提高软件质量具有非常重要的意义。

  单元测试工具集成的实践

  工具链整合框架

  为做好数字化转型,着力构建研发运维一体化流程,企业正在打造高效完整的DevOps工具链,贯穿开发、测试、运维各环节,搭建支撑持续集成、自动化测试、持续交付的工具链,实现研发-运维生命周期全流程的自动化:

7c37ee85be8c136cfc1024e4b5dd2ea9.png

  单元测试集成的两种场景

  云下集成

  基于TFS平台实现了两大主流开发语言(C#、Java)的单元测试工具(Nunit、Junit)持续集成,只要项目组完成首个单元测试方法编写并本地运行通过后,即可在持续集成流程中加入单元测试过程:

5d83f567ae77c5525b676a4eb41148c2.png

  在TFS工具中创建持续集成流水线(生成定义),并通过添加编译、单元测试等步骤,即可实现代码拉取、下载、编译、执行单元测试方法的自动化:

1cedabc39840c95d074b8ebc51a4913e.png
93808dca863057654d19285bf776f7ef.png

  目前,包含单元测试过程的流水线支持多种方式自动化执行:代码提交时自动触发、定时触发、拉取请求(代码归并)时自动触发:

5f5787c5301b608dd17c4c0a5b1495ce.png

  单元测试结果以及代码覆盖率情况(支持Cobertura、Jacoco)可以通过邮件以及页面展示的方式快速直观的反馈给开发人员:

5c9b0757e657f5169966e2ef5e17ce57.png

  云上集成

  云计算在企业应用逐步广泛,使用云进行构建、测试、部署一体化,具备高效、快捷、一致等优势。DevOps持续集成流水线可以采用TFS为入口平台,由TFS触发Jenkins在云上进行编译、单元测试,并将单元测试结果、代码覆盖率结果回传至TFS发布:

a7a30c9f71d304a9cdc25c22882dd16d.png
bbd5fe7877c75150a0346b0a85bf8526.png

  注意:云上单元测试集成,需要在云上流水线脚本中加入调用单元测试工具的语句,例如:

stage('Unit Test') {

  steps {

  sh "${mvnCmd} clean test cobertura:cobertura"

  //请依据实际情况修改pom文件的路径

  step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])

  //请提前在代码的pom文件中加上maven-surefire-plugin

  }

  结束语

  经验表明具备完整单元测试方法的研发项目有更高的软件质量,无论什么时候对代码进行修改都可以进行单元回归测试,单元测试集成自动化大大节省了研发人员的宝贵时间,从而把精力集中在单元测试之间的交互作用以及全局的功能实现上。

请关注+私信回复:“测试”就可以免费拿到软件测试学习、面试资料。

c27babdbfbd63ad01aa88a06215daa18.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值