SwiftSnapshotTesting

本项目旨在简化 iOS 上的 UI 测试。

SwiftSnapshotTesting 帮助您用几行代码即可检查应用程序的 UI。不再需要手动管理参考图像。

该框架能够

在内部,SwiftSnapshotTesting 在快照比较期间使用 MTLTextures。此外,它还使用 Resources Bridge Monitor 应用程序在 Mac 上读取和写入文件。

⚠️目前,该项目处于早期 alfa 阶段,并且可以进行改进。

要求

通过 SwiftPM 安装

.package(url: "https://github.com/eugenebokhan/SwiftSnapshotTesting.git",
         .upToNextMinor(from: "0.1.6"))

如何使用

Info.plist 配置

为了使 SwiftSnapshotTesting 在 iOS 14 上运行时工作,您需要在应用程序的 Info.plist 文件中包含两个键。这些键是 Privacy - Local Network Usage Description (NSLocalNetworkUsageDescription) 和 Bonjour services (NSBonjourServices)。 对于隐私键,请包含一段人类可读的描述,说明用户允许您的应用程序访问本地网络上的设备可以获得什么好处。 Bonjour 服务键是您的应用程序将浏览的服务类型数组。 对于 SwiftSnapshotTesting,此键的值应为 _ResourcesBridge._tcp

如果您没有正确配置上述键,则 SwiftSnapshotTesting 将无法在真机上运行。

XCTAttachment

在每次断言测试之后,SnapshotTestCase 提供一个附件,其中包含快照和相应参考之间的逐像素 L2 距离,以及一个突出显示差异的 MTLTexture。您可以使用 MTLTextureViewer 查看差异。

示例

您可以在 ImageFlip 仓库中找到一个关于使用 SwiftSnapshotTesting 的小型 示例

许可证

MIT