来自命令行的Xcode代码覆盖百分比

v09wglhw  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(118)

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

piok6c0g

piok6c0g1#

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
cmssoen2

cmssoen22#

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

xcrun xcresulttool get --path path/to/.xcresult

还可以使用--format json将数据导出为JSON
有关详细信息,请参阅this WWDC talk

相关问题