这个软件包提供了一些友好的 Swift
对象,它们映射到 xcresult
对象。您可以使用包含在 Xcode 11
中的 xcresulttool
和 xccov
应用访问这些 xcresult
对象。这两个应用程序都提供导出到 JSON 的选项,而这个软件包提供了将数据转换为您可以使用的对象所需的所有 JSON 解析功能。
这是使用该软件包的主要入口点。只需使用您要从中提取的 .xcresult
文件的路径创建此对象的一个实例即可。
let resultFile = XCResultFile(url: urlToXCResult)
创建实例后,有几种方法可以提取和解析数据。请注意,所有这些方法都会执行 shell 命令来运行 xcresulttool
或 xccov
,因此显然这只能在 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()