第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。其他的信息根据自己的需求进行改写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值