繁体   English   中英

如何在Xcode 4中获得测试和构建iPhone的代码覆盖率?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM