[英]How do I get code coverage for Xcode for my Objective-C app?
[英]How do I get code coverage for tests and build for iPhone in Xcode 4?
我有几个单元测试的项目,我想测量覆盖率。 因此,我按照如何使用CoverStory和网络上的其他内容详细说明。
我将-fprofile-arcs
和-ftest-coverage
到我的测试目标和测试中的目标,并链接到指定的/Developer/usr/lib/libprofile_rt.dylib
。
它的工作原理! 当我在iPhone模拟器下运行测试方案时,我得到了我的代码覆盖率,我的测试和应用程序构建和运行。
但是,当我回到实际iPhone硬件上的Run方案时,我发现了libprofile_rt.dylib的链接错误。 具体来说,我明白了
ld:找不到-lprofile_rt的库
我怀疑这里的libprofile_rt实际上是一个用于Mac硬件的库,iPhone显然无法链接到为Mac构建的二进制文件。
我的问题是如何在iPhone硬件上运行并获得我的代码覆盖率?
我怀疑我可以使用仅用于测试的Debug目标副本来执行此操作,但这还有另外一个维护目标的麻烦。 有没有其他方法让这个工作? 我做傻事吗?
可能有点迟,但实际上你可以。 本演示文稿中介绍了幻灯片32至34。
花了我相当长的时间才找到这个隐藏的宝石。 希望这可能有助于此页面的未来访客。
答案是: 您无法在设备上运行并同时获得保险。 获得覆盖的唯一方法是在模拟器上:制作调试目标的副本,设置覆盖范围以及不在该目标上的内容,并在模拟器中使用测试运行该目标。
我在stackoverflow上回答了这个问题的所有细节: iOS上的代码覆盖率在Lion上使用Xcode 4.2
这个问题的可能答案如下: https : //stackoverflow.com/a/5140459
诀窍是通过Xcode组织器将* .gcda文件从App的Documents目录中取出,因为它们当然会在设备上生成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.