我已经克服了在我的 iPhone 项目上设置的所有问题,gcov
但现在我得到了以下信息:
profiling:/Users:Cannot create directory
有人对我可能做错了什么有任何建议吗?
我最初按照 Google 的说明设置 gcov,可以通过谷歌搜索“UsingCoverStory”找到
更新:好的,让我澄清一下我想要做什么。我有一个我试图自动测试的 iPhone 应用程序。我正在使用UISpec
框架来驱动 GUI。我真正要知道的是我的测试实际上覆盖了多少代码。我认为我真的很接近,但我只需要了解如何正确设置环境/编译器变量以适合我的项目。
这是我迄今为止所做的总结。我首先复制了我的构建目标,指定了链接器标志和规定的其他几个选项。(这可以使用 Google 创建的 AppleScript 自动完成。说明和下载可以通过谷歌搜索“UsingCoverStory”找到)无论如何,我已经验证这些设置分配正确。我将我的配置设置为调试,我在 3.1.3 设备上运行它。当我运行应用程序时,它不会在调试器中显示任何特殊内容,直到我退出应用程序。那时我收到一个错误:
profiling:/Users:Cannot create directory
profiling:/Users/forbushbl/Documents/TestApp/build/TestApp.build/Debug-iphoneos/TestApp copy.build/Objects-normal/armv6/ApplicationController.gcda:Skip
我认为这GCOV
是试图写出.gcda
文件,但我不太确定如何告诉它应该写在哪里。我读到某处GCOV
试图重现.gcno
文件存储在我的项目文件夹中的目录结构,这很有意义,因为上面的目录是.gcno
文件在我的机器上的位置。然而,这是一个问题,因为 iPhone 上不存在该结构,设备也无法创建该结构。
我发现另一个人有同样的问题,他们说他们必须设置一个环境变量。如何在 iPhone SDK 中设置 gcov 进行代码覆盖率分析?
该GCOV
文档说明了以下内容:
例如,如果目标文件
/user/build/foo.o
是用 构建的 ,最终的可执行文件将在目标系统上运行时-fprofile-arcs
尝试创建数据文件。/user/build/foo.gcda
如果相应的目录不存在并且无法创建它,这将失败。这可以通过例如将环境设置为“GCOV_PREFIX=/target/run”和“GCOV_PREFIX_STRIP=1”来克服。这样的设置将命名数据文件/target/run/build/foo.gcda
。
我的问题是,如何在 iPhone 上设置这些环境变量?我应该在构建配置中还是在实际代码中执行此操作?