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

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

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

我已经使用Apple的iPhoneUnitTests sample作为基础项目,只需运行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

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

解决方法

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

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

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...