10

我正在使用 gcovr 为 cobertura 生成代码覆盖率。xcode 4.6 一切正常。现在我更新到 xcode5,我得到的一切都是 0% 的覆盖率......

我的设置:

  • gcovr 3.0
  • Xcode 5(苹果 LLVM 5)
  • “生成测试覆盖文件”设置为 YES
  • “仪器程序流程”设置为“是”

并命令我使用:

gcovr -r . --object-directory Build/Intermediates/myApp.build/Debug-iphonesimulator/myApp.build/Objects-normal/i386 --exclude '.*Tests.*' --exclude '.*KiwiUnitTest' --exclude '.*main.*' --xml > reports/coverage.xml

有人有同样的问题或更好,有解决方案吗?:)

4

2 回答 2

3

现在它又可以工作了...... :)

正如@kenji所说,Xcode 5.1 解决了这个问题。顺便说一句

这是我的工作环境和配置给有兴趣的人

  • Xcode 5.1.1(来自 AppStore)
  • gcovr 3.1-prerelease(使用easy_install安装)

在我的“构建设置”下的项目中,我设置了以下内容:

  • “生成测试覆盖文件”设置为 YES
  • “仪器程序流程”设置为“是”

运行测试后,我执行以下命令:(发生在詹金斯身上)

gcovr -r . --object-directory Build/Intermediates/MyProj.build/Debug-iphonesimulator/KiwiUnitTest.build/Objects-normal/i386 --exclude '.*Tests.*' --exclude '.*KiwiUnitTest' --exclude '.*main.*' --xml > reports/coverage.xml

完毕。

对不起,让您等待答案,并感谢大家的帮助。

于 2014-05-14T08:45:34.880 回答
0

首先确保您的 .gcda 和 .gcno 文件已创建!

(检查:~/Library/Developer/Xcode/DerivedData/{YOUR-PROJECT-NAME}/Build/Intermediates/{YOUR-PROJECT-NAME}.build/Debug-iphonesimulator/{YOUR-PROJECT-NAME}.build/Objects -正常/i386)

如果它们已成功创建,您需要执行以下操作:(如果没有检查您问题下的评论)

  1. 将 i386 文件夹(如上所述的完整路径)中的所有文件复制到 .h 和 .m 文件所在的工作区中。

  2. 运行终端并将您的父工作目录更改为您的工作区

     cd [YOUR WORKSPACE PATH]
    
  3. 运行 gcovr

     gcovr -r . --xml  > reports/coverage.xml
    

如果您正在使用 jenkins(我假设),这将是您的进一步步骤: Generating gcda files to view the code-coverage from XCTests in IOS with Jenkins

如果您还有问题,请告诉我!

于 2014-01-08T11:11:19.547 回答