我可以从Xcode界面看到代码覆盖率,我可以导航到DerivedData文件夹中的.xcresult文件和Coverage.profdata文件,但这些文件不是人可读的,如何从这些文件中提取代码覆盖率?
DerivedData
.xcresult
Coverage.profdata
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
cmssoen22#
如果您使用的是Xcode 11或更高版本,您可以使用以下命令从命令行检查内容。
xcrun xcresulttool get --path path/to/.xcresult
还可以使用--format json将数据导出为JSON有关详细信息,请参阅this WWDC talk
--format json
2条答案
按热度按时间piok6c0g1#
Lior的方向是正确的,首先使用xcodebuild构建并测试应用程序,在项目根目录下使用以下命令
这将转储Build目录中的所有DerivedData。这将在路径Build/Logs/Test中生成代码覆盖率数据。我们将看到扩展名为.xccovreport和.xccovarchive的代码覆盖率。
然后查看默认格式的代码覆盖率报告,默认格式不是特别好,但是按照Apple的格式,它是人类可读的。
xccov的真实的强大之处在于它可以生成JSON格式的代码覆盖率报告。根据Apple手册页上的文档,它是机器可表示的格式。我们可以在任何地方挂钩这些JSON结果,或者在此基础上构建另一个工具。我们可以使用以下命令生成JSON报告
cmssoen22#
如果您使用的是Xcode 11或更高版本,您可以使用以下命令从命令行检查内容。
还可以使用
--format json
将数据导出为JSON有关详细信息,请参阅this WWDC talk