本申请公开了一种源代码自动测试方法及装置、存储介质、计算机设备,该方法包括:在检测到新代码提交记录的情况下,获取所述新代码提交记录对应的代码存储目录以及代码编译地址,并基于所述代码编译地址和所述代码存储目录,创建编译任务;通过执行所述编译任务,扫描所述代码存储目录下的源代码并调用所述代码编译地址下的编译器对扫描出的源代码进行编译;若所述编译任务的执行结果为编译成功,则获取所述源代码对应的编译后的可执行文件,并调用所述新代码提交记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试。节省测试中编译应用等待的耗时,同时能保证以最新的代码测试,测试工作变得更加高效和准确。
【技术实现步骤摘要】
本申请涉及代码测试,尤其是涉及到一种源代码自动测试方法及装置、存储介质、计算机设备。
技术介绍
1、对于很多软件公司来说,软件在产品研发阶段性完成之后需提交测试,以及在测试之后需要进行编译和发布,当前在测试应用时,一般需要测试人员手动在编译平台上编译应用,无法及时知道有代码提交后进入编译任务,不能及时获取最新代码进行测试,且有其他任务在编译时还需排队等待,每次编译任务会比较耗时。这样就导致时间被浪费且无法准确的使用最新代码测试,降低了测试效率,因此,亟需解决这一技术问题。
技术实现思路
1、有鉴于此,本申请实施例提供了一种源代码自动测试方法及装置、存储介质、计算机设备,相比于目前手动编译代码的方式,可以节省测试中编译应用等待的耗时,同时能保证以最新的代码测试,测试工作变得更加高效和准确。
2、根据本申请的一个方面,提供了一种源代码自动测试方法,所述方法包括:
3、在检测到新代码提交记录的情况下,获取所述新代码提交记录对应的代码存储目录以及代码编译地址,并基于所述代码编译地址和所述代码存储目录,创建编译任务;
4、通过执行所述编译任务,扫描所述代码存储目录下的源代码并调用所述代码编译地址下的编译器对扫描出的源代码进行编译;
5、获取所述编译任务的执行结果;
6、若所述执行结果为编译成功,则获取所述源代码对应的编译后的可执行文件,并调用所述新代码提交记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试。</p>7、可选地,所述获取所述编译任务的执行结果之后,所述方法还包括:
8、若所述执行结果为编译成功,则基于所述新代码提交记录和所述可执行文件,生成编译成功信息;
9、若所述执行结果为编译失败,则基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息。
10、可选地,所述若所述执行结果为编译失败,则基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息,包括:
11、若所述执行结果为编译失败,则重复执行所述编译任务;
12、在执行所述编译任务的次数达到预设次数、且均执行失败的情况下,基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息,否则确定所述执行结果为编译成功。
13、可选地,所述调用所述新代码记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试之后,所述方法还包括:
14、若所述可执行文件通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录,生成测试成功信息;
15、若所述可执行文件未通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录,生成测试失败信息。
16、可选地,所述获取所述新代码提交记录对应的代码存储目录以及代码编译地址,包括:
17、在检测到新代码提交记录的情况下,根据所述新代码提交记录对应的项目标识,获取所述项目标识对应的代码存储目录以及代码编译地址;
18、相应地,所述若所述可执行文件通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录,生成测试成功信息,包括:
19、若所述可执行文件通过测试,则基于所述新代码提交记录对应的项目标识以及所述可执行文件的测试记录,生成项目测试成功信息,并将所述项目标识对应的目标项目标记为可发版项目;
20、相应地,所述若所述可执行文件未通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录,生成测试失败信息,包括:
21、若所述可执行文件未通过测试,则基于所述新代码提交记录对应的项目标识以及所述可执行文件的测试记录,生成项目测试失败信息,并将所述项目标识对应的目标项目标记为待整改项目。
22、可选地,所述在检测到新代码提交记录的情况下,获取所述新代码提交记录对应的代码存储目录以及代码编译地址之前,所述方法还包括:
23、对多个被测项目进行代码提交记录的周期性检测;
24、相应地,所述基于所述代码编译地址和所述代码存储目录,创建编译任务之后,所述方法还包括:
25、基于所述新代码提交记录对应的提交时间,将所述新代码提交记录对应的编译任务按时间先后顺序写入任务队列中,以基于所述任务队列中的编译任务顺序进行所述编译任务的执行。
26、可选地,所述基于所述代码编译地址和所述代码存储目录,创建编译任务,包括:
27、获取所述新代码提交记录对应的代码版本号,并基于所述代码编译地址、所述代码存储目录以及所述代码版本号,创建编译任务;
28、相应地,所述通过执行所述编译任务,扫描所述代码存储目录下的源代码并调用所述代码编译地址下的编译器对扫描出的源代码进行编译,包括:
29、通过执行所述编译任务,在所述代码存储目录下扫描与所述代码版本号对应的源代码文件中的源代码,并调用所述代码编译地址下的编译器对扫描出的源代码进行编译;
30、若在所述代码存储目录下未扫描出与所述代码版本号对应的源代码文件、或所述源代码文件为空,则基于所述代码存储目录,生成新代码提交失败信息。
31、根据本申请的另一方面,提供了一种源代码自动测试装置,所述装置包括:
32、任务创建模块,用于在检测到新代码提交记录的情况下,获取所述新代码提交记录对应的代码存储目录以及代码编译地址,并基于所述代码编译地址和所述代码存储目录,创建编译任务;
33、编译模块,用于通过执行所述编译任务,扫描所述代码存储目录下的源代码并调用所述代码编译地址下的编译器对扫描出的源代码进行编译;获取所述编译任务的执行结果;
34、测试模块,用于若所述执行结果为编译成功,则获取所述源代码对应的编译后的可执行文件,并调用所述新代码提交记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试。
35、可选地,所述编译模块,还用于:
36、若所述执行结果为编译成功,则基于所述新代码提交记录和所述可执行文件,生成编译成功信息;
37、若所述执行结果为编译失败,则基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息。
38、可选地,所述编译模块,还用于:
39、若所述执行结果为编译失败,则重复执行所述编译任务;
40、在执行所述编译任务的次数达到预设次数、且均执行失败的情况下,基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息,否则确定所述执行结果为编译成功。
41、可选地,所述测试模块,还用于:
42、若所述可执行文件通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录,生成测试成功信息;
43、若所述可执行文件未通过测试,则基于所述新代码提交记录以及所述可执行文件的测试记录本文档来自技高网
...
【技术保护点】
1.一种源代码自动测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取所述编译任务的执行结果之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述若所述执行结果为编译失败,则基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述调用所述新代码记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述获取所述新代码提交记录对应的代码存储目录以及代码编译地址,包括:
6.根据权利要求5所述的方法,其特征在于,所述在检测到新代码提交记录的情况下,获取所述新代码提交记录对应的代码存储目录以及代码编译地址之前,所述方法还包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述代码编译地址和所述代码存储目录,创建编译任务,包括:
8.一种源代码自动测试装置,其特征在于,所述装置包括:p>9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。
...
【技术特征摘要】
1.一种源代码自动测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取所述编译任务的执行结果之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述若所述执行结果为编译失败,则基于所述新代码提交记录和所述编译任务对应的编译日志,生成编译失败信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述调用所述新代码记录对应的测试接口,获取所述测试接口对应的测试数据对所述可执行文件进行测试之后,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述获取所述新代码提交记录对应的代码存储目录以及代码编译地址,包括:
6.根据权利要求5所...
【专利技术属性】
技术研发人员:曹先明,田野,何世伟,
申请(专利权)人:成都安易迅科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。