前言:
随着项目迭代速度的逐渐加快,小编本人开始感觉到项目测试时间已经成为很难争取到的资源,因此在有限的时间内提升测试质量就成为了目前的一个重要目标,于是小编找到了XcodeCoverage这个查看代码覆盖度的工具,借助此工具我们可以更快的设计出覆盖度更全的测试用例,并且确保其不冗余。接下来将介绍一下该工具的基本信息和使用方法。
简介:
XcodeCoverage是一个基于lcov的统计工具,用于计算Xcode项目的单元测试覆盖率,且能生成html格式的统计报表。XcodeCoverage是通过gcc编译的时候加入gcov统计代码覆盖率,Gcov可以执行函数覆盖、语句覆盖和分支覆盖。同样的,我们也可以按照这种思路来实现手工测试的代码覆盖率统计。
步骤:
首先,我们需要下载XcodeCoverage到被测试工程根目录,这里有两种方法可供选择
1. 通过Git直接下载: https://github.com/jonreid/XcodeCoverage 2. 利用Pods进行配置
这里小编使用的是第二种方法,配置如下:
1. 确保电脑已经安装了CocoaPods,没有安装可以自行搜索方法 2. 在Podfile文件里面添加第三方库 pod'XcodeCoverage','~>1.0' 3. 在根目录下运行 pod install 将必要的库下载到本地 4.在自己的工程中Run Script中配置运行脚本 Pods/XcodeCoverage/exportenv.sh
其次,我们需要对打包进行配置,此时,为了不影响别的打包模式,我们就在Build设置中添加一个模式区别于Debug和Release,这里操作如下
1. 新建一个Build Configurations
2. 需要设置build setting中的Apple LLVM,设置project在Coverage的scheme下的Code Generate中该scheme为Yes,Instrument Program Flow中该scheme为Yes
3. 设置scheme,将运行的scheme设置为刚才添加的configuration gcov
4. 我们还需要在工程中配置触发方法,可以在AppDelegate中添加代码__gcov_flush(),这样当按Home键退出的时候测试覆盖率数据会写到统计文件中
最后,我们启动运行xcode中的工程,并在模拟器中对app进行测试。在测试完成后点击Home键结束。此时统计数据已经生成,查看统计报告可以在工程的XcodeCoverage目录下执行 ./getcov -s 即可生成本文最上方的测试覆盖率统计报告了。
总结:
使用上述方法,我们就可以在app运行过程中对代码覆盖率进行分析,帮助我们更好的设计覆盖度高且不出现重复的case,有效的控制了测试质量。但是目前该方法只适用于模拟器中测试的数据统计,后续将考虑在真机的测试中实际应用。