System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种单元测试用例生成方法、装置、电子设备及存储介质制造方法及图纸_技高网

一种单元测试用例生成方法、装置、电子设备及存储介质制造方法及图纸

技术编号:41229760 阅读:4 留言:0更新日期:2024-05-09 23:46
本发明专利技术实施例提供了一种单元测试用例生成方法、装置、电子设备及存储介质,涉及软件开发领域。当检测到模块代码有变更时,判断所述模块代码中是否有单元测试用例,若有,则执行单元测试用例,若单元测试用例执行失败,检测模块代码是否正常,若模块代码正常,通过Gradle插件由EvoSuite框架生成单元测试用例,从而能够自动化的生成单元测试用例,确保了代码质量,减少了开发人员手动编写和维护测试用例的工作量。

【技术实现步骤摘要】

本专利技术涉及软件开发领域,具体而言,涉及一种单元测试用例生成方法、装置、电子设备及存储介质


技术介绍

1、单元测试用于对软件中的最小可测试单元进行检查和验证,单元测试通常在代码编写完成后进行,由开发人员编写和执行测试用例,但由于单元测试编写有一定的门槛,且编写单元测试步骤较为繁琐,因此单元测试的普及率并不高,开发人员写单元测试意愿较低。


技术实现思路

1、有鉴于此,本专利技术实施例的目的在于,提供一种单元测试用例生成方法、装置、电子设备及存储介质,以至少部分地改善上述问题。

2、为了实现上述目的,本专利技术实施例采用的技术方案如下:

3、第一方面,本专利技术实施例提供了一种单元测试用例生成方法,所述方法包括:

4、当检测到模块代码有变更时,判断所述模块代码中是否有单元测试用例;所述单元测试用例由evosuite框架生成;

5、若是,执行所述单元测试用例,检测单元测试用例是否执行成功;

6、若执行失败,检测所述模块代码是否正常;

7、若模块代码正常,通过gradle插件由所述evosuite框架生成单元测试用例;所述gradle插件用于触发所述evosuite框架运行。

8、可选地,在生成单元测试用例之前,所述方法还包括:

9、将robolectric框架合并进所述evosuite框架。

10、可选地,所述将robolectric框架合并进所述evosuite框架的步骤,包括:

11、将所述evosuite框架的运行容器设置为robolectrictestrunner;所述运行容器用于生成和执行所述单元测试用例;

12、将robolectric框架的第二加载类合并到所述evosuite框架的第一加载类中,得到第三加载类;

13、配置透传属性,所述透传属性用于向所述evosuite框架传递所述robolectric框架所需的属性。

14、可选地,所述将robolectric框架的第二加载类合并到所述evosuite框架的第一加载类中,得到第三加载类的步骤,包括:

15、获取所述第二加载类;所述第二加载类包括至少一个第二加载项;

16、将所述第二加载项按顺序合并到所述第一加载类中,得到所述第三加载类;所述第一加载类包括至少一个第一加载项,所述第三加载类包括至少两个第三加载项,所述第三加载项包括所有所述第一加载项和所有所述第二加载项;

17、将所述第三加载类中有冲突的所述第三加载项剔除。

18、可选地,所述方法还包括:

19、配置前置属性,所述前置属性用于在生成所述单元测试用例时,在多个单元测试用例前增加相同的执行方法;

20、设置生成单元测试用例中的随机数据的字符范围,以使生成的测试数据符合实际需求。

21、可选地,所述gradle插件包括用例生成任务以及用例检测任务,所述通过gradle插件由所述evosuite框架生成单元测试用例的步骤,包括:

22、根据所述模块代码,调用所述用例生成任务,生成待检测单元测试用例;

23、调用所述用例检测任务,执行所述待检测单元测试用例,并剔除执行异常的待检测单元测试用例,得到所述单元测试用例。

24、可选地,所述根据所述模块代码,调用所述用例生成任务,生成待检测单元测试用例的步骤,包括:

25、将所述模块代码进行编译,得到编译文件;

26、将所述编译文件传递给所述evosuite框架,并由所述evosuite框架生成待检测单元测试用例。

27、第二方面,本专利技术实施例提供了一种单元测试用例生成装置,所述装置包括:

28、代码变更检测单元,用于当检测到模块代码有变更时,判断所述模块代码中是否有单元测试用例;所述单元测试用例由evosuite框架生成;

29、用例执行单元,用于若是,执行所述单元测试用例,检测单元测试用例是否执行成功;

30、代码逻辑检测单元,用于若执行失败,检测所述模块代码是否正常;

31、用例生成单元,用于若模块代码正常,通过gradle插件由所述evosuite框架生成单元测试用例;所述gradle插件用于触发所述evosuite框架运行。

32、第三方面,本专利技术实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的方法。

33、第四方面,本专利技术实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。

34、本专利技术实施例提供的一种单元测试用例生成方法、装置、电子设备及存储介质,通过检测到模块代码变更时,自动生成单元测试用例,减少了开发人员手动编写和维护测试用例的工作量,配置前置属性使测试用例的更加的简便,设置生成单元测试用例中的随机数据的字符范围,可以使生成的测试数据符合实际需求。

35、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

本文档来自技高网...

【技术保护点】

1.一种单元测试用例生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在生成单元测试用例之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述将Robolectric框架合并进所述EvoSuite框架的步骤,包括:

4.根据权利要求3所述的方法,其特征在于,所述将Robolectric框架的第二加载类合并到所述EvoSuite框架的第一加载类中,得到第三加载类的步骤,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述Gradle插件包括用例生成任务以及用例检测任务,所述通过Gradle插件由所述EvoSuite框架生成单元测试用例的步骤,包括:

7.根据权利要求6所述的方法,其特征在于,所述根据所述模块代码,调用所述用例生成任务,生成待检测单元测试用例的步骤,包括:

8.一种单元测试用例生成装置,其特征在于,所述装置包括:

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。

10.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。

...

【技术特征摘要】

1.一种单元测试用例生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在生成单元测试用例之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述将robolectric框架合并进所述evosuite框架的步骤,包括:

4.根据权利要求3所述的方法,其特征在于,所述将robolectric框架的第二加载类合并到所述evosuite框架的第一加载类中,得到第三加载类的步骤,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述gradle插件包括用例...

【专利技术属性】
技术研发人员:梁铭锐
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:

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

1