命令行中的 Xcode 代码覆盖率

Chi*_*buZ 7 xcode code-coverage

Xcode 覆盖率

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

Dan*_*yon 10

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

\n
$ 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\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n
$ xcrun xccov view Build/Logs/Test/*.xccoveragereport\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
$ xcrun xccov view Build/Logs/Test/*.xccovreport --json\n
Run Code Online (Sandbox Code Playgroud)\n

  • 与“xcrun xccov view --report Build/Logs/Test/*.xcresult --json”配合使用效果很好 (3认同)