一种代码测试处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31696191 阅读:15 留言:0更新日期:2022-01-01 10:56
本发明专利技术提供了一种代码测试处理方法、装置、电子设备及存储介质。所述方法,包括:在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解,以通过所述自定义注解标注所述目标方法;编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码;在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果,得到所述目标代码的测试结果;其中,所述自定义注解为可作用于类方法上,用于标记待测试类方法的注解,所述目标模块为所述工程中的任一代码模块。述目标模块为所述工程中的任一代码模块。述目标模块为所述工程中的任一代码模块。

【技术实现步骤摘要】
一种代码测试处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种代码测试处理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着计算机技术的发展,很多开发平台可以提供代码测试环境。例如Android中提供了一套自己的Java测试和Android测试环境。
[0003]但是测试框架一般仅可以在主程序/主工程中使用正常,但是不能很好支持被主工程依赖的各单个模块的代码测试。例如,假设A模块依赖了B、C模块,那么如果在B模块中测试代码能否在A模块中正常运行,往往需要需要手动添加测试入口,影响代码测试效率。

技术实现思路

[0004]本专利技术实施例提供一种代码测试处理方法、装置、电子设备及存储介质,以解决现有的代码测试方式每次测试时需要手动添加测试入口,影响代码测试效率的问题。
[0005]为了解决上述技术问题,本专利技术是这样实现的:
[0006]第一方面,本专利技术实施例提供了一种代码测试处理方法,包括:
[0007]在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解,以通过所述自定义注解标注所述目标方法;
[0008]编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码;
[0009]在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果,得到所述目标代码的测试结果;
[0010]其中,所述自定义注解为可作用于类方法上,用于标记待测试类方法的注解,所述目标模块为所述工程中的任一代码模块。
[0011]可选地,在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码的步骤,包括:
[0012]在所述目标模块的编译过程中,通过所述注解处理器,执行以下步骤,以解析所述自定义注解,得到待测试的目标代码:
[0013]S1,初始化所述注解处理器;
[0014]S2,获取所述目标模块中所有通过所述注解处理器处理的自定义注解;
[0015]S3,获取所有被所述自定义注解标注的方法;
[0016]S4,通过反射调用被所述自定义注解标注的方法,生成所述目标代码。
[0017]可选地,在所述编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码的步骤之前,所述方法还包括:
[0018]获取待测试的目标源代码,并在所述目标方法内录入所述目标源代码,以在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到所述目标代码。
[0019]可选地,在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解的步骤之前,还包括:
[0020]在所述工程中构建所述自定义注解,以及用于处理所述自定义注解的注解处理器。
[0021]可选地,所述在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果的步骤,包括:
[0022]在所述工程启动时,在所述工程启动的入口调用目标方法,以自动执行所述目标代码,并返回所述目标代码的执行结果;
[0023]其中,所述目标方法用于获取被所述自定义注解标记的方法,并通过反射执行所述方法,完成所述目标代码的自动测试。
[0024]可选地,所述工程包括基于可编译语言构建的工程,所述可编译语言包括Java、Kotlin中的至少一种。
[0025]第二方面,本专利技术实施例提供了一种代码测试处理装置,包括:
[0026]代码标注模块,用于在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解,以通过所述自定义注解标注所述目标方法;
[0027]代码编译模块,用于编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码;
[0028]代码测试模块,用于在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果,得到所述目标代码的测试结果;
[0029]其中,所述自定义注解为可作用于类方法上,用于标记待测试类方法的注解,所述目标模块为所述工程中的任一代码模块。
[0030]可选地,所述代码编译模块,具体用于:
[0031]在所述目标模块的编译过程中,通过所述注解处理器,执行以下步骤,以解析所述自定义注解,得到待测试的目标代码:
[0032]S1,初始化所述注解处理器;
[0033]S2,获取所述目标模块中所有通过所述注解处理器处理的自定义注解;
[0034]S3,获取所有被所述自定义注解标注的方法;
[0035]S4,通过反射调用被所述自定义注解标注的方法,生成所述目标代码。
[0036]可选地,所述装置还包括:
[0037]测试代码注入模块,用于获取待测试的目标源代码,并在所述目标方法内录入所述目标源代码,以在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到所述目标代码。
[0038]可选地,所述装置还包括:
[0039]注解工具创建模块,用于在所述工程中构建所述自定义注解,以及用于处理所述自定义注解的注解处理器。
[0040]可选地,所述代码测试模块,具体用于:
[0041]在所述工程启动时,在所述工程启动的入口调用目标方法,以自动执行所述目标代码,并返回所述目标代码的执行结果;
[0042]其中,所述目标方法用于获取被所述自定义注解标记的方法,并通过反射执行所述方法,完成所述目标代码的自动测试。
[0043]可选地,所述工程包括基于可编译语言构建的工程,所述可编译语言包括Java、Kotlin中的至少一种。
[0044]第三方面,本专利技术实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的代码测试处理方法的步骤。
[0045]第四方面,本专利技术实施例另外提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的代码测试处理方法的步骤。
[0046]在本专利技术实施例中,通过编译时注解及注解处理器生成待测试的目标代码,实现在工程启动后自动执行待测试代码。对需要测试的代码只需添加一行注解,编写测试代码,即可快速完成对待测试代码的测试,且对工程接口侵入性小。
附图说明
[0047]图1是本专利技术实施例中的一种代码测试处理方法的步骤流程图;
[0048]图2是本专利技术实施例中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码测试处理方法,其特征在于,包括:在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解,以通过所述自定义注解标注所述目标方法;编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码;在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果,得到所述目标代码的测试结果;其中,所述自定义注解为可作用于类方法上,用于标记待测试类方法的注解,所述目标模块为所述工程中的任一代码模块。2.根据权利要求1所述的方法,其特征在于,在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码的步骤,包括:在所述目标模块的编译过程中,通过所述注解处理器,执行以下步骤,以解析所述自定义注解,得到待测试的目标代码:S1,初始化所述注解处理器;S2,获取所述目标模块中所有通过所述注解处理器处理的自定义注解;S3,获取所有被所述自定义注解标注的方法;S4,通过反射调用被所述自定义注解标注的方法,生成所述目标代码。3.根据权利要求1所述的方法,其特征在于,在所述编译所述目标模块所属工程,并在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到待测试的目标代码的步骤之前,所述方法还包括:获取待测试的目标源代码,并在所述目标方法内录入所述目标源代码,以在所述目标模块的编译过程中,通过所述注解处理器解析所述自定义注解,得到所述目标代码。4.根据权利要求1所述的方法,其特征在于,在待测试的目标模块的源代码中引入自定义注解,以及用于处理所述自定义注解的注解处理器,并在所述目标模块中需要测试的目标方法上添加所述自定义注解的步骤之前,还包括:在所述工程中构建所述自定义注解,以及用于处理所述自定义注解的注解处理器。5.根据权利要求1

6中任一项所述的方法,其特征在于,所述在所述工程启动时,自动执行所述目标代码,并返回所述目标代码的执行结果的步骤,包括:在所述工程启动时,在所述工程启动的入口调用目标方法,以自动执行所述目标代码,并返回所述目标代码的执行结果;其中,所述目标方法用于获取被所述自定义注解标记的方法,并通过反射执行所述方法,完成所述目标代码的自动测试。6.根据所述1

4中任一项所述的方法,其特征在于,所述工程包括基于可编译语言构建的工程,所述可编译语言包括Java、Kotlin中的至少一种。7.一种代码测试处理装置,其特征在于,包括:代码...

【专利技术属性】
技术研发人员:胡芸菘
申请(专利权)人:五八有限公司
类型:发明
国别省市:

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

1