正式项目中,单体测试是必不可少的。如果遇到了比较严格的客户,可能会要求测试的覆盖率达到一个具体的标准。
这种情况下,可以利用CoverStory来查看UnitTest的测试结果,统计出总体和各个详细模块的测试覆盖率。
操作步骤如下:
1. 安装CoverStory (下载地址)
2. 修改Xcode中Test Target的build setting
Generate Test Coverage Files 设定为 YES
Instrument Program Flow 设定为 YES
Compiler for C/C++/Objective-C 设定为 Apple LLVM Compiler 3.0
3. 修改Xcode中Test Target的build phaese
在Link Binary中追加libprofile_rt.dylib
注意:libprofile_rt.dylib不在默认的framework目录里,需要自己到Finder中搜索
4. 接下来运行单体测试
5. 使用CoverStory打开项目编译目录下的gcda文件
注意:测试结果gcda文件位于一个隐藏很深的目录,大致位置如下
/Users/liu_xy/Library/Developer/Xcode/DerivedData//Users/YourName/Library/Developer/Xcode/DerivedData/YourAppName/Build/Intermediates/YourAppName.build/Debug-iphonesimulator/YourAppName.build/Objects-normal/i386/Build/Intermediates/YourAppName.build/Debug-iphonesimulator/YourAppName.build/Objects-normal/i386
6. CoverStory窗口中可以查看到各个文件的覆盖率情况,其中红色的部分是没有测试到的内容
另外,如果一些代码需要作为测试对象以外,可以在代码的头尾加上
// COV_NF_START 和 // COV_NF_END