然后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查看测试覆盖率结果