欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 第2.7节 iOS生成报告时排除指定的类

第2.7节 iOS生成报告时排除指定的类

2025/4/8 23:15:59 来源:https://blog.csdn.net/lionking0318/article/details/146937841  浏览:    关键词:第2.7节 iOS生成报告时排除指定的类

2.7.1 简介

iOS和Android类似,也存在这样的情况:

(1)一个项目有废弃的功能,但是只从应用层面屏蔽了对应的入口,代码依然存在;

(2)某此极端的兜里代码,正常情况下无法测试,生成报告时依然会统计进覆盖率报告。

(3)多个需求混合开发,只希望看到本需求的增量报告,当然此种情况后面还有其他优化方案。

还有一些其他的情况,就是项目中有些代码不需要统计到覆盖率报告中,全量报告或是增量报告中却存这类数据,影响问题分析和数据度量,业务同学反馈能否去掉此类数据?

2.7.2 排除指定的类

无论是Object C还是Swift开发的iOS应用,在生成覆盖率报告的时候,都会生成info格式的报告。

1,Object c 通过lcov命令生成info报告数据

lcov -b <测试代码路径> -d <gcda目录位置> -c -o result.info --rc lcov_branch_coverage=1

2, Swift项目生成info文件:

xcrun llvm-cov export ./shoppingCart 
--instr-profile=test.profdata -use-color 
--format=lcov > ./newreport.info

生成info格式的文件后,里面的数据就是以类为单位,包含各种覆盖率数据。

3,去掉指定类的覆盖率数据

要排除指定的类,就把info文件中包含这个类的所有信息去掉即可,如去掉类:/Users/****/DataHelper/KImPinYin.swift的覆盖率信息,

只需要把以:SF:/Users/****/DataHelper/KImPinYin.swift开始,到第一个end_of_record之间的数据,将其他的类信息保存成新的info文件 newrport.info。

然后再生成报告:

genhtml -o newreport newrport.info

2.7.3 排除高级用法

     由于info文件记录了类,函数,分支等具体信息,所以也可以针对具体的类,去掉指定的函数,指定的行的覆盖率数据。

以行为例:DA:XX 代表文件中的第几行,紧跟着的数字代码执行多少次。如果要去掉这个行的覆盖率信息,将执行次数改成0。

如果要去掉函数信息,可以先算出函数的起始位置,将这个范围内的行执行次数都改成0,再把整个类的函数信息减1。其他的信息根据自己的需求进行改写。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词