一种基于kubernetes的单元测试方法技术

技术编号:35058313 阅读:9 留言:0更新日期:2022-09-28 11:09
本申请公开了一种基于kubernetes的单元测试方法,包括提交待检测的代码单元;将所述代码单元编译构建镜像;由kubernetes根据所述镜像创建POD,对所述代码单元进行自动测试;测试完成后,将结果自动发送给开发者本方案,可自动进行单元测试,且方便共享同组人员。且方便共享同组人员。且方便共享同组人员。

【技术实现步骤摘要】
一种基于kubernetes的单元测试方法


[0001]本申请涉及计算机
,具体而言,涉及一种基于kubernetes的单元测试方法。

技术介绍

[0002]在没有单元测试的时代,大多数的错误都是通过操作页面的时候发现的。当发现一个错误的时候,会根据异常抛出的地点来确定是哪段代码出现了问题。由于效率较低,通常不会所有方法中都使用Try块去处理异常。因此一且发现一个异常通常都是最顶层代码抛出的,但是错误往往又是在底层很深层次的某个对象中出现的。当找到了这个最初抛出异常的方法的时候,可能无法得知这段代码到底是哪里出了问题。只能逐行代码的去查找,一旦这个方法中使用的某个对象在外部有注册事件或者有其他的操作正在与当前方法同步进行,那么就更难发现错误真正的原因了。
[0003]有经验的程序员也会知道,大多数的时候,我们并不是真正的在编写新的代码,而是在修改旧的代码出现的错误。通常这个比例会大于2比8,这也是编写代码的时候的二八现象——编写代码的时间是二,而为这段代码找错误、修改错误所花费的时间却是八。
[0004]在这种状态之下,我们在找错误的时候会直接编译整个程序,然后通过界面逐步的操作到错误的地方然后再去查找代码中是否有错误。这样的找错误的方法效率非常低。但是当我们拥有单元测试的时候,我们就不需要通过界面去一步一步的操作,而是直接运行这个方法的单元测试,将输入的条件模拟成出现错误的时候输入的信息和调用的方法的形式,这样就可能很快的还原出错误。这样解决起来速度就提高了很多,每次找到错误都去修改单元测试,那么下次就不会再出现相同的错误了。
[0005]如果通过模拟,单元测试也没有出现任何异常,这时也可以断定,并非该代码出现的错误,而是其他相关的代码出现的错误。我们只需再调试其他几个相关的代码的单元测试即可找到真正的错误。
[0006]缺乏一种开发机器上进行自动单元测试,且方便共享同组人员的单元测试方法。

技术实现思路

[0007]本申请的主要目的在于提供一种基于kubernetes的单元测试方法,以改善相关技术中无法自动单元测试,且不方便共享同组人员的问题。
[0008]为了实现上述目的,本申请提供了一种基于kubernetes的单元测试方法,包括:
[0009]提交待检测的代码单元;
[0010]将所述代码单元编译构建镜像;
[0011]由kubernetes根据所述镜像创建POD,对所述代码单元进行自动测试;
[0012]测试完成后,将结果自动发送给开发者。
[0013]在本申请的一种实施例中,提交待检测的代码单元的方法包括:
[0014]将编码完成的代码划分为多个代码单元;
[0015]至少选取部分代码单元作为所述待检测的代码单元;
[0016]将所述待检测的代码单元提交并推送到Git仓库中。
[0017]在本申请的一种实施例中,选取全部的代码单元作为所述待检测的代码单元。
[0018]在本申请的一种实施例中,将所述代码单元编译构建镜像的步骤包括:
[0019]第一仓库接收所述待检测的代码单元;
[0020]将所述待检测的代码单元更新为待执行代码单元;
[0021]轮询所述第一仓库是否完整有序的接收所述待检测的代码单元;
[0022]若所述第一仓库完整有序的接收所述待检测的代码单元;则从所述第一仓库中拉取待执行代码单元,并编译构建所述镜像。
[0023]在本申请的一种实施例中,将所述代码单元编译构建镜像的步骤还包括:
[0024]判断构建镜像是否成功,若成功,将所述镜像储存至镜像仓库中;
[0025]若不成功,则将进行报错。
[0026]在本申请的一种实施例中,由kubernetes根据所述镜像创建POD的方法包括:
[0027]将Git仓库交付到kubernetes集群中;
[0028]获取GitLab镜像并创建gitlab.yaml;
[0029]获取Redis镜像并创建redis.yaml;
[0030]获取Postgresql镜像并创建postgresql.yaml;
[0031]执行kubernetes命令使得Git仓库创建成功。
[0032]在本申请的一种实施例中,所述由kubernetes根据所述镜像创建POD,对所述代码单元进行自动测试的方法包括:
[0033]获取基础镜像并创建CICD.yaml;
[0034]集成Maven,Python以及Allure框架至CI/CD镜像中;
[0035]执行kubernetes命令使得CI/CD Server成功运行。
[0036]在本申请的一种实施例中,所述对所述代码单元进行自动测试的方法包括:
[0037]基于Junit,结合Allure单元测试报告框架,借助CI/CD Server中的计划任务功能,实现基于kubernetes进行无人值守的单元测试;
[0038]在本申请的一种实施例中,所述对所述代码单元进行自动测试的方法包括:
[0039]所述CI/CD Server中集成Maven,Python以及Allure框架,在编译镜像以及启动单元测试都可在此进行,POD启动后即可进行单元测试。
[0040]在本申请的一种实施例中,所述将结果自动发送给开发者的方法包括:
[0041]完成后通过Python脚本以webhook的通知方式通知到开发者。
[0042]与现有技术相比,本申请的有益效果是:
[0043]对所述代码单元进行自动测试即可以实现无人工干预状态下进行单元测试;提高了检测效率,并且能够让程序员在提交项目之前就将代买变得更加健壮;还可以提高研发效率,无需开发人员本地跑单元测试,节省时间精力。同时,也能够让项目主管更方便的了解系统当前的状况,便于项目的管理。
附图说明
[0044]图1为根据本申请实施例提供的一种基于kubernetes的单元测试方法的流程示意
图;
[0045]图2为根据本申请实施例提供的一种基于kubernetes的单元测试方法的提交待检测的代码单元的方法的流程示意图;
[0046]图3为根据本申请实施例提供的一种基于kubernetes的单元测试方法的将所述代码单元编译构建镜像的流程示意图。
[0047]图4为根据本申请另一实施例提供的一种基于kubernetes的单元测试方法的将所述代码单元编译构建镜像的流程示意图。
[0048]图5为根据本申请实施例提供的一种基于kubernetes的单元测试方法的由kubernetes根据所述镜像创建POD的方法的结构示意图。
[0049]图6为根据本申请实施例5提供的一种基于kubernetes的单元测试方法的流程示意图。
具体实施方式
[0050]为了使本
的人员更好地理解本申请方案,下面将结合本申请实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于kubernetes的单元测试方法,其特征在于,包括:提交待检测的代码单元;将所述代码单元编译构建镜像;由kubernetes根据所述镜像创建POD,对所述代码单元进行自动测试;测试完成后,将结果自动发送给开发者。2.如权利要求1所述的一种基于kubernetes的单元测试方法,其特征在于,提交待检测的代码单元的方法包括:将编码完成的代码划分为多个代码单元;至少选取部分代码单元作为所述待检测的代码单元;将所述待检测的代码单元提交并推送到Git仓库中。3.如权利要求2所述的一种基于kubernetes的单元测试方法,其特征在于,选取全部的代码单元作为所述待检测的代码单元。4.如权利要求3所述的一种基于kubernetes的单元测试方法,其特征在于,将所述代码单元编译构建镜像的方法包括:第一仓库接收所述待检测的代码单元;将所述待检测的代码单元更新为待执行代码单元;轮询所述第一仓库是否完整有序的接收所述待检测的代码单元;若所述第一仓库完整有序的接收所述待检测的代码单元;则从所述第一仓库中拉取待执行代码单元,并编译构建所述镜像。5.如权利要求4所述的一种基于kubernetes的单元测试方法,其特征在于,将所述代码单元编译构建镜像的步骤还包括:判断构建镜像是否成功,若成功,将所述镜像储存至镜像仓库中;若不成功,则将进行报错。6.如权利要求4所述的一种基于kubernetes的单元测试方法,其特征在于,由kubernetes根据所述镜像创建POD的方法包括:将Git仓库交付到kubernet...

【专利技术属性】
技术研发人员:华张辉
申请(专利权)人:中教云智数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1