欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2018114237881
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2026-07-21
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种代码覆盖率统计方法,其特征在于,包括:

获取预设测试项目中各类的类名,并通过各类的类名获取各类中的实例方法;

将所获取的实例方法存储至预设数据库中;

获取所述实例方法的第一函数指针,并将所述第一函数指针替换为预设函数指针;

创建与所述实例方法对应的执行方法,并将所述执行方法的第二函数指针设置为所述实例方法的第一函数指针,使得在执行所述实例方法时,因无法找到所述实例方法所对应的方法体,从而触发消息转发机制,以跳转至执行所述实例方法所在类中的预设消息转发方法,所述预设消息转发方法即可调用对应的执行方法,以通过对应的执行方法的执行来实现所述实例方法的还原执行;

执行所述实例方法,并在执行所述实例方法时,跳转至执行预设消息转发方法;

通过所述预设消息转发方法进行所述实例方法的还原执行;

构建与所述预设消息转发方法对应的自定义代码块,并在所述自定义代码块中注入预设记录代码;

在执行所述预设消息转发方法时,调用所述自定义代码块,以获取并执行所述预设记录代码;

通过所述预设记录代码的执行情况记录所述实例方法对应的执行方法的执行情况;

根据所述执行方法的执行情况,确定对应的实例方法的还原执行情况;

根据所述还原执行情况,对所述预设数据库中对应的实例方法添加执行标记;

根据所述执行标记,统计得到所述预设测试项目的代码覆盖率。

2.根据权利要求1所述的代码覆盖率统计方法,其特征在于,所述获取预设测试项目中各类的类名,并通过各类的类名获取各类中的实例方法,包括:获取所述预设测试项目的项目路径;

根据所述项目路径和预设类名获取方法,获取所述预设测试项目中的各类和各类的类名;

分别将各类的类名作为第一参数传入至预设实例获取方法中,得到各类中的实例方法。

3.根据权利要求1所述的代码覆盖率统计方法,其特征在于,所述通过所述预设消息转发方法进行所述实例方法的还原执行,包括:在跳转至执行预设消息转发方法时,记录跳转之前所执行的第一实例方法以及所对应的第二参数;

确定与所述第一实例方法对应的第一执行方法,并将所述第二参数传入所述第一执行方法中;

通过所述预设消息转发方法调用传入所述第二参数后的第一执行方法,以进行所述第一实例方法的还原执行。

4.根据权利要求1至3任一项所述的代码覆盖率统计方法,其特征在于,所述将所获取的实例方法存储至预设数据库中,包括:

将所获取的实例方法与对应的类关联存储至所述预设数据库中;

相应地,所述根据所述执行标记,统计得到所述预设测试项目的代码覆盖率,包括:分析所述预设数据库中的执行标记,统计得到各类所对应的第一代码覆盖率和统计得到所述预设测试项目的代码覆盖率。

5.一种代码覆盖率统计装置,其特征在于,包括:

方法获取模块,用于获取预设测试项目中各类的类名,并通过各类的类名获取各类中的实例方法;

方法存储模块,用于将所获取的实例方法存储至预设数据库中;

指针替换模块,用于获取所述实例方法的第一函数指针,并将所述第一函数指针替换为预设函数指针;

执行方法创建模块,用于创建与所述实例方法对应的执行方法,并将所述执行方法的第二函数指针设置为所述实例方法的第一函数指针,使得在执行所述实例方法时,因无法找到所述实例方法所对应的方法体,从而触发消息转发机制,以跳转至执行所述实例方法所在类中的预设消息转发方法,所述预设消息转发方法即可调用对应的执行方法,以通过对应的执行方法的执行来实现所述实例方法的还原执行;

跳转执行模块,用于执行所述实例方法,并在执行所述实例方法时,跳转至执行预设消息转发方法;

还原执行模块,用于通过所述预设消息转发方法进行所述实例方法的还原执行,并构建与所述预设消息转发方法对应的自定义代码块,并在所述自定义代码块中注入预设记录代码;在执行所述预设消息转发方法时,调用所述自定义代码块,以获取并执行所述预设记录代码;通过所述预设记录代码的执行情况记录所述实例方法对应的执行方法的执行情况;根据所述执行方法的执行情况,确定对应的实例方法的还原执行情况;

执行标记模块,用于根据所述还原执行情况,对所述预设数据库中对应的实例方法添加执行标记;

代码统计模块,用于根据所述执行标记,统计得到所述预设测试项目的代码覆盖率。

6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至4中任一项所述代码覆盖率统计方法的步骤。

7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如下步骤:获取预设测试项目中各类的类名,并通过各类的类名获取各类中的实例方法;

将所获取的实例方法存储至预设数据库中;

获取所述实例方法的第一函数指针,并将所述第一函数指针替换为预设函数指针;

创建与所述实例方法对应的执行方法,并将所述执行方法的第二函数指针设置为所述实例方法的第一函数指针,使得在执行所述实例方法时,因无法找到所述实例方法所对应的方法体,从而触发消息转发机制,以跳转至执行所述实例方法所在类中的预设消息转发方法,所述预设消息转发方法即可调用对应的执行方法,以通过对应的执行方法的执行来实现所述实例方法的还原执行;

执行所述实例方法,并在执行所述实例方法时,跳转至执行预设消息转发方法;

通过所述预设消息转发方法进行所述实例方法的还原执行;

构建与所述预设消息转发方法对应的自定义代码块,并在所述自定义代码块中注入预设记录代码;

在执行所述预设消息转发方法时,调用所述自定义代码块,以获取并执行所述预设记录代码;

通过所述预设记录代码的执行情况记录所述实例方法对应的执行方法的执行情况;

根据所述执行方法的执行情况,确定对应的实例方法的还原执行情况;

根据所述还原执行情况,对所述预设数据库中对应的实例方法添加执行标记;

根据所述执行标记,统计得到所述预设测试项目的代码覆盖率。