IOS测试覆盖率生成(XCode 4.6)

然后test的BuildSettings里面   Generate TestCoverageFiles 和instrument Program Flow 设为YES
然后在DerivedData相应的目录里面即会自动生成
不需要添加libprofile_rt.dylib这个库 否则测试会卡住

gcda文件 gcda文件可以用 coverstory(开源 从 google code上获得)

最后一张图为CoverStory的截图 不过还有一些问题
在应用的target里面设置覆盖率 得到的覆盖率会是100% 因为它只计算了测试用例的代码被运行的覆盖率 而没有计算被测源文件
的覆盖率 因此

在OCtest的target里面设置覆盖率 需要将被计量覆盖率的文件.m添加到 compile Source里面去

后来查到应当是这些源文件需要按照*Test.m或者*Test.h来命名 这样 CoverStory可以将这些文件自动筛选出。

此时文件夹中包含了testCase文件的覆盖率(100%)
对覆盖率的结果有一些干扰 可以在TestCase的文件里面头尾添加
// COV_NF_START 和 // COV_NF_END 就不会影响测试覆盖率的计算了
另外,如果一些代码需要作为测试对象以外,也可以在代码的头尾加上

貌似有些乱七八糟整理如下
1.设置BuildSetting
Generate TestCoverageFiles 和instrument Program Flow 设为YES
2.在OCTestTarget的ComileSources中添加需要被测量测试覆盖率的.m文件
3.在不需要测试的文件中添加// COV_NF_START 和 // COV_NF_END

4.运行测试
5.用Coverstory查看测试覆盖率结果



 


 




 

 
 
 


 





原文地址:https://www.cnblogs.com/laoniu85/p/2961075.html