如何在iPhone SDK中设置gcov进行代码覆盖率分析?

ref*_*tis 6 iphone cocoa unit-testing gcov

我最近开始对我为iPhone编写的应用程序进行单元测试.我有创建自己的测试的基础知识,即使它看起来有点次优.但是,我在使用gcov设置代码覆盖率分析时遇到了麻烦.

我按照这里的说明进行操作:http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/,在其他地方重复得非常相似.我试过在他们的Mac工具箱中使用谷歌的AppleScript,以防我在Xcode中输入错误.

我已经使用Apple的iPhoneUnitTests示例作为基础项目,只需运行Google的AppleScript就可以针对CalcTests目标启用代码覆盖测试,以获得一个源代码不足的自动化示例.无论我使用什么场景,我自己的代码,Apple,手动设置正确的变量或让Google的AppleScript为我做,我得到的只是测试运行完成后调试控制台中的这些错误:

profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip
Run Code Online (Sandbox Code Playgroud)

没有创建gcda文件,因此我无需分析.任何有关这方面的帮助将不胜感激.

ref*_*tis 6

解决方案是这些指南指的是在iPhone模拟器中运行代码.因为我正在运行应用程序级别测试,所以我正在进行交叉分析并需要遵循这些信息.

然后我将环境变量GCOV_PREFIX设置为将其转储到我的应用程序的Documents目录中,然后使用Xcode中的管理器从设备下载我的应用程序包,从而将.gcda文件从Documents目录中取出.这是相当麻烦的,并且很难用于自动覆盖测试,但考虑到在沙箱中运行的约束以及使用仅可用于在设备上进行测试的类(即MediaPlayer.framework),它是我能看到的唯一解决方案.