微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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),它是我能看到的唯一解决方案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐