快照XCUI测试
本教程向您展示如何将流行的测试库iOSSnapshotTestCase与XCUITests一起使用。 如果您已经知道如何创建项目并安装一些Pod,请随时跳过。
设置项目
然后在项目的根目录中,运行pod init
。 这将在项目的根目录中创建一个Podfile。 打开它,然后将pod 'iOSSnapshotTestCase'
添加到Test和UITest目标,如下所示:
然后运行pod install
。 这会将所需的文件添加到这些目标。
接下来,您将要编辑方案以添加必要的环境变量。
您可以从iOSSnapshotTestCase存储库中复制粘贴的前两个,除路径的最后一部分外,第三个将相同。
FB_REFERENCE_IMAGE_DIR
是该工具将存储参考图像的位置。
该工具将在IMAGE_DIFF_DIR
中存储差异以检查故障。
FAILED_UI_TEST_DIR
是我们的自定义目录,我们将在其中存储XCUITest故障的快照
添加一个XCUITest
现在我们需要测试。 在Main.storyboard
添加带有一些文本的UILabel
。 还要添加一个UIButton
,以一种不同的感觉与新的UIViewController
结合。 例如:
在预先生成的SnapshotUITestingUITests
,将生成的代码替换为:
很好 如果将recordMode
切换为false(或删除该行),则下一次运行会将屏幕截图与刚拍摄的截图进行比较。 在项目目录中找到存储的图像应该没有问题。
解决状态栏问题
我将为您省去发现的旅程,只告诉您有问题。 以这种方式做事需要整个模拟器的屏幕截图。
不用担心 我们可以解决这个问题。 将新文件添加到UITest目标,并将其UIImageExtensions
。 添加以下代码。
结论:
尚未使用太多,但看起来确实很有希望。 让我知道您的想法,如果您最终使用它! 您可以在这里找到完成的项目:https://github.com/joesus/SnapshotUITesting