gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:41 30 4
gpt4 key购买 nike

我在 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 中用于测试运行的“覆盖率”选项卡显示的是“无覆盖率数据”,而不是指示条。

知道我做错了什么吗?

最佳答案

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

  1. 已安装 cobertura 插件
  2. 已安装 slather 插件
  3. 为项目启用代码覆盖率(在模式首选项中)
  4. 在jenkins中添加执行shell命令

/usr/bin/xcodebuild 测试 -workspace MyApp.xcworkspace -scheme MyAppTests -configuration DebugMyApp -destination "platform=iOS Simulator,OS=9.3,name=iPhone 6"-enableCodeCoverage YES

  1. 然后再构建一个 stem 用于涂抹

扩大覆盖面\
--输入格式 profdata\
--cobertura-xml\
--忽略“../**/*/Xcode*”\
--output-directory slather-report\
--scheme MyAppTests\
--workspace MyApp.xcworkspace\
MyApp.xcodeproj

  1. 最后但同样重要的是添加构建后步骤“public cobertura report”Cobertura xml 报告模式 - slather-report/cobertura.xml
  2. 享受 :)

关于ios - Xcode 7 代码覆盖率报告不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134535/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com