【问题标题】:Xcode code coverage percentage from command line来自命令行的 Xcode 代码覆盖率
【发布时间】:2021-03-26 14:52:43
【问题描述】:

我可以从 Xcode UI 中看到代码覆盖率。我可以导航到DerivedData 文件夹中的.xcresult 文件和Coverage.profdata 文件,但这些文件不是人类可读的。如何从这些文件中提取代码覆盖率?

【问题讨论】:

    标签: xcode code-coverage


    【解决方案1】:

    Lior 走在正确的轨道上。 首先使用 xcodebuild 从项目的根目录使用以下命令构建和测试应用程序

    $ xcodebuild -project XCCoverage-Demo.xcodeproj/ -scheme XCCoverage-Demo -derivedDataPath Build/ -destination 'platform=iOS Simulator,OS=11.3,name=iPhone 7' -enableCodeCoverage YES clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
    

    这将转储 Build 目录中的所有 DerivedData。 这将在路径 Build/Logs/Test 生成代码覆盖率数据。我们将看到 .xccovreport 和 .xccovarchive 扩展名的代码覆盖率。

    然后以默认格式查看代码覆盖率报告,这不是特别好,但根据 Apple,它是人类可读的。但是我们可以使用以下命令生成报告

    $ xcrun xccov view Build/Logs/Test/*.xccoveragereport
    

    xccov 的真正强大之处在于它可以生成 JSON 格式的代码覆盖率报告。根据 Apple 在手册页上的文档,它的机器可表示格式。我们可以在任何我们喜欢的地方挂钩这些 JSON 结果,或者在此基础上构建另一个工具。我们可以使用以下命令生成 JSON 报告

    $ xcrun xccov view Build/Logs/Test/*.xccovreport --json
    

    【讨论】:

    • xcrun xccov view --report Build/Logs/Test/*.xcresult --json 一起使用效果很好
    【解决方案2】:

    如果您使用的是 Xcode 11 或更高版本,您可以使用以下命令从命令行检查内容。

    xcrun xcresulttool /path/to/result/.xcresult
    

    并将数据导出为 JSON

    更多信息请参见this WWDC talk

    【讨论】:

    • 感谢 WWDC 演讲。
    • 对任何 .xcresult 文件执行上述命令返回错误:预期参数:合并、元数据、图形、版本、格式描述、导出、获取
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多