System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件开发领域,具体而言,涉及一种单元测试用例生成方法、装置、电子设备及存储介质。
技术介绍
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.一种电子设备,包括存储器、处理器及存储在存储器上并
10.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
...【技术特征摘要】
1.一种单元测试用例生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在生成单元测试用例之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述将robolectric框架合并进所述evosuite框架的步骤,包括:
4.根据权利要求3所述的方法,其特征在于,所述将robolectric框架的第二加载类合并到所述evosuite框架的第一加载类中,得到第三加载类的步骤,包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述gradle插件包括用例...
【专利技术属性】
技术研发人员:梁铭锐,
申请(专利权)人:广州虎牙科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。