ios - Xcode UI Test 的屏幕截图文件在哪里?

标签 ios xcode-ui-testing fastlane

我对如何找到在我的应用的 UI 测试期间创建的屏幕截图的位置感兴趣。我想了解一下 FaSTLane Snapshot 是如何抓取这张截图的。经过几个小时的研究,我找不到这些屏幕截图的位置。

最佳答案

屏幕截图存储在您的派生数据文件夹中。您可以通过转到 Xcode、Window > Projects 并单击项目的派生数据路径旁边的小箭头来找到它。

从您的项目派生数据文件夹(应该是您的文件夹名称后跟一堆字母),转到 Logs/Test

在测试文件夹内将是测试摘要 .plist 文件,其名称中包含 UUID(每个测试运行一个)和一个名为 Attachments 的文件夹 - 屏幕截图在此处。

如果这些文件夹中的任何一个不存在,请确保您已先运行测试。

要找出您想要的屏幕截图,您需要深入研究 *_TestSummaries.plist 文件。在 Xcode 中打开它,然后按照测试摘要找到您感兴趣的 SubActivity。一些 SubActivity 没有屏幕截图,并且会将 HasScreenshotData 键设置为 NO .

当您找到带有屏幕截图数据的 SubActivity 时,将该 SubActivity 的 UUID 与 Attachments 文件夹中的屏幕截图文件名相匹配。

我的屏幕截图位于:/Users/{username}/Library/Developer/Xcode/DerivedData/{project_name}-tywebfjsswmghapfjfbzhuazjf/Logs/Test/Attachments

在 .plist 中,我按照以下路径查找事件的屏幕截图数据的详细信息:TestableSummaries > Item 0 > Tests > Item 0 > Subtests > Item 0 > Subtests > Item 0 > ActivitySummaries > Item 1 > 子事件 > 项目 0

关于ios - Xcode UI Test 的屏幕截图文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283647/

相关文章:

ios - 由于某种原因在 iOS 中托管对象上下文为 nil

ios - 以编程方式将新电话号码添加到地址簿中的联系人(iPhone)

ios - 在 XCTest UI 测试中复制拉动刷新

ios - FaSTLane 匹配密码忘记了

xcode - 如何从 faSTLane 只运行一个 ui-test?

ios - UITableViewCell 内部的 UISwitch

ios - XCTest:有没有办法在 UI 测试中通过 ID 查找任何类型的 View ?

iOS 9 UI 测试 - 测试失败,因为目标控件不可用(尚未)

android - FaSTLane 分发失败,错误为 "App Distribution could not find your app"

ios - 以相同的 Alpha 混合 Metal