测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift版本 | 4.0 |
SPM支持SPM | ✗ |
由Jakub Turek,Mateusz Szklarek维护。
依赖 | |
EarlGrey | ~> 1.12 |
FBSnapshotTestCase | ~> 2.1 |
EarlGrey为FBSnapshotTestCase提供动作。提供Nimble Snapshots的功能测试对齐。
在库之前,您需要将项目与EarlGrey库集成。强烈建议遵循官方安装指南并为特性测试创建单独的测试目标,因为它们的可靠性不如常规单元测试。
接下来,请确保定义两个环境变量,它们分别指向
FB_REFERENCE_IMAGE_DIR
- 且包含参照快照的目录,IMAGE_DIFF_DIR
- 且包含失败快照和视觉差异的目录。这些变量的合理默认值如FBSnapshotTestCase的README中提出的)
名称 | 值 |
---|---|
FB_REFERENCE_IMAGE_DIR |
$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages |
IMAGE_DIFF_DIR |
$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/FailureDiffs |
现在您可以得到您首个参考快照。使用EarlGrey的选择API选择参考元素,并调用grey_recordSnapshot()
动作
EarlGrey.select(elementWithMatcher: grey_kindOfClass(AViewToSnapshotClass.self))
.assert(grey_recordSnapshot())
运行测试目标。测试应该因以下错误而失败
Image recorded successfully! Replace with grey_verifySnapshot().
在遵循指示后,您应将测试更改为以下:
EarlGrey.select(elementWithMatcher: grey_kindOfClass(AViewToSnapshotClass.self))
.assert(grey_verifySnapshot())
就这样了!从现在开始测试将会验证选定的视图是否与引用快照匹配。
使用grey_recordSnapshot()
和grey_verifySnapshot()
在针对具有不同分辨率和像素密度的设备执行测试时将不起作用。要启用此类测试,您应该使用grey_recordDeviceAgnosticSnapshot()
和grey_verifyDeviceAgnosticSnapshot()
API代替。它们会比较按测试名称匹配的快照和设备类型,这意味着您必须为所有支持的设备类型记录单独的快照。
EarlGreySnapshots将两个库连接在一起
确保在项目中安装它们。
EarlGreySnapshots可通过CocoaPods获取。要安装,
只需将以下行添加到您的Podfile中
pod 'EarlGrey', '~> 1.12'
pod 'FBSnapshotTestCase', '~> 2.1'
pod 'EarlGreySnapshots', '~> 0.0.4'
别忘了之后运行pod install
!
要运行示例项目,请克隆仓库,然后首先从示例目录中运行pod install
。
项目大量借鉴了Nimble Snapshots中找到的想法。对@ashfurrow和其他维护者给予巨大赞誉。
turekj, [email protected]
EarlGreySnapshots项目遵循MIT许可协议。请参阅LICENSE文件获取更多信息。