快照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