Xcode 7代码覆盖率报告不起作用

时间:2015-10-14 20:00:42

标签: ios xcode llvm

我在Xcode 7中为某个iOS项目提供代码覆盖率报告时遇到问题。

我按照此处给出的说明操作: http://mgrebenets.github.io/mobile%20ci/2015/09/21/code-coverage-for-ios-xcode-7/

在我尝试的三个项目中,有两个工作正常,但有一个项目令我头疼。使用llvm-cov实用程序从收集的配置文件数据生成报告时,如下所示:

xcrun llvm-cov report -instr-profile Coverage.profdata MyAppBinary 

我收到错误消息:

error: Failed to load coverage: The file was not recognized as a valid object file

我检查了"收集覆盖率数据"已启用测试方案。我还检查了-fprofile-instr-generate和-fcoverage-mapping编译器选项是否传递给了clang。

文件大小和类型对我来说也是有效的:

ilMac:llvm-cov-test ilja$ ls -la
total 61976
drwxr-xr-x   4 ilja  staff       136 14 Okt 21:53 .
drwxr-xr-x+ 75 ilja  staff      2550 14 Okt 16:31 ..
-rw-r--r--   1 ilja  staff   1797416 14 Okt 21:53 Coverage.profdata
-rwxr-xr-x   1 ilja  staff  29932040 14 Okt 16:32 MyAppBinary

ilMac:llvm-cov-test ilja$ file Coverage.profdata 
Coverage.profdata: data

ilMac:llvm-cov-test ilja$ file MyAppBinary 
MyAppBinary: Mach-O universal binary with 2 architectures
MyAppBinary (for architecture i386):    Mach-O executable i386
MyAppBinary (for architecture x86_64):  Mach-O 64-bit executable x86_64

我还注意到"覆盖范围"用于测试运行的Xcode中的选项卡是"没有覆盖数据"而不是指标栏。

知道我做错了吗?

3 个答案:

答案 0 :(得分:1)

发布我的解决方案以防有人需要它。 关注这篇文章code coverage xcode 7 我做了以下步骤:

  1. 已安装的cobertura插件
  2. 已安装的slather插件
  3. 为项目启用代码覆盖(在架构首选项中)
  4. 在jenkins中添加了执行shell命令
  5. /usr/bin/xcodebuild test -workspace MyApp.xcworkspace -scheme MyAppTests -configuration DebugMyApp -destination "platform=iOS Simulator,OS=9.3,name=iPhone 6" -enableCodeCoverage YES

    1. 然后还有一个构建词干
    2. slather coverage \ --input-format profdata \ --cobertura-xml \ --ignore "../**/*/Xcode*" \ --output-directory slather-report \ --scheme MyAppTests \ --workspace MyApp.xcworkspace \ MyApp.xcodeproj

      1. 最后但不仅仅是添加帖子构建步骤" publich cobertura报告" Cobertura xml报告模式 - slather-report / cobertura.xml
      2. 享受:)

答案 1 :(得分:0)

该项目只有" Build Active Architecture"将Xcode构建设置中的设置设置为" YES"。在将其切换为" NO"之后,我现在可以运行llvm-cov命令。但是,数字不会删除Xcode中显示的数字。

答案 2 :(得分:0)

我能够通过仅使用x86_64架构来解决问题。

使用ARCHS =" x86_64" VALID_ARCHS =" x86_64的"在你的xcodebuild命令中