XCResultKit

这个软件包提供了一些友好的 Swift 对象,它们映射到 xcresult 对象。您可以使用包含在 Xcode 11 中的 xcresulttoolxccov 应用访问这些 xcresult 对象。这两个应用程序都提供导出到 JSON 的选项,而这个软件包提供了将数据转换为您可以使用的对象所需的所有 JSON 解析功能。

XCResultFile

这是使用该软件包的主要入口点。只需使用您要从中提取的 .xcresult 文件的路径创建此对象的一个实例即可。

let resultFile = XCResultFile(url: urlToXCResult)

创建实例后,有几种方法可以提取和解析数据。请注意,所有这些方法都会执行 shell 命令来运行 xcresulttoolxccov,因此显然这只能在 macOS 上运行。

要获取 ActionsInvocationRecord 对象(这是 .xcresult 文件中的顶级对象)

let invocationRecord = resultFile.getInvocationRecord()

在调用记录中,您将找到测试计划运行摘要 ID,您可以使用它来获取运行了哪些测试的详细信息

let testPlanRunSummaries = resultFile.getTestPlanRunSummaries(id: "xxx")

您可以获取单个测试的详细信息

let testSummary = resultFile.getActionTestSummary(id: "xxx")

测试还可以包括附件,并且使用有效负载 ID,您可以获取原始数据,或者将内容导出到文件

let payload = resultFile.getPayload(id: "123")
let exportedPath = resultFile.exportPayload(id: "123")

您还可以使用这种简化的方法获取 xccov 的结果

let codeCoverage = resultFile.getCodeCoverage()