SuperAPI AI 工具集

snapshot-test-setup

测试与质量

查看项目

更新于 10-16 08:10

技能介绍

用途:为 SwiftUI 项目搭建快照(视觉回归)测试,使用 Point-Free 的 swift-snapshot-testing 库,将渲染后的视图与参考图对比,捕捉非预期的 UI 变化。当用户提到快照测试、视觉回归测试、截图测试、预览测试,或希望验证 SwiftUI 视图不被意外改动时启用。

主要能力:添加 swift-snapshot-testing 依赖(SPM 使用 https://github.com/pointfreeco/swift-snapshot-testing,from "1.17.0";Xcode 通过 File → Add Package Dependencies 添加);生成快照测试基础代码与各类视图测试,包括 iOS 视图(UIHostingController)、macOS 视图(NSHostingController)与可复用组件快照;覆盖浅色/深色模式、空状态、Dynamic Type 无障碍字号、不同窗口尺寸等配置;生成首次录制参考图与重新录制(withSnapshotTesting(record: .all))流程;提供 GitHub Actions 与 Xcode Cloud 的 CI 集成示例;说明在测试目标中以 -only-testing 方式运行快照套件。

使用方式:先做预检查(查找 Package.swift 或 xcodeproj、确认是否已添加依赖、测试文件中是否已有 SnapshotTesting),再询问包管理器(SPM/CocoaPods/Tuist)、平台(iOS/macOS/两者)与测试范围(指定视图/所有屏幕/组件库)。首次运行 xcodebuild test 录制参考图,图像生成于测试文件旁的 Snapshots/ 目录并提交到 git;有意修改视图时临时开启 record 模式重新录制。

适用场景与限制:适合有多状态屏幕、可复用组件、浅色/深色与 Dynamic Type 需求的 SwiftUI 界面;不建议对纯系统组件、频繁变动或依赖实时数据的视图做快照。需固定同一模拟器型号与系统版本作为快照目标,否则基线会产生差异;建议使用 perceptualPrecision: 0.98 吸收渲染噪声。record 模式不可提交启用,新增基线前需两次运行均通过。

其他细节(如具体价格或平台支持)暂未提供。