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
$ xcrun xccov view Build/Logs/Test/*.xccovreport --json
xcrun xcresulttool get --path path/to/.xcresult
同时使用--format json
将数据导出为JSON格式。
有关更多信息,请参见此WWDC演讲。
xcrun xccov view --report Build/Logs/Test/*.xcresult --json
可以很好地处理工作。 - ChikabuZxcodebuild
构建/测试 Swift 包,无法将-derivedDataPath
值设置为与包相同的目录。顺便提一下。 - Jonathan Cabrera