我给出了来自应用程序设计的确切大小.png
渲染,在Retina 4",Retina 3.5"等上显示我的应用应该是什么样子
想要自动比较这些"黄金大师"在显示该屏幕时,呈现以及应用实际看起来像的屏幕截图。
理想情况下,我想通过持续集成运行一些东西,这样我就可以打破构建,如果.xib搞砸了。
我该怎么做?
已经尝试过:
可能的方法:
答案 0 :(得分:2)
看看ios-snapshot-test-case,这是为了接近这个而建的。
首次运行测试时将采用参考图像,然后将后续测试输出与参考图像进行比较。你基本上可以使用它,但不是从测试中创建参考图像,而是提供自己的参考图像。
在实践中,这将非常难以正确执行。在iOS和设计师使用的任何工具之间呈现文本,渐变等的方式存在细微差别。
答案 1 :(得分:1)
我查看KIF进行功能测试。
您可以创建一个自定义测试(在上面的自述文件末尾附近的小示例"与其他测试框架一起使用"),它会截取屏幕截图并将其与该视图的预期屏幕截图进行比较。如果它不匹配,请致电failWithException:stopTest:
。
正如您所提到的,您需要为每个预期的屏幕截图保存一个遮罩,并在比较之前应用遮罩。您将始终拥有不匹配的部分屏幕,例如状态栏中的时间至少。
对于比较本身,这里有几个链接:
OpenCV:我已经看过这个推荐,但是没有尝试过。
答案 2 :(得分:1)
我知道这是一个较老的问题,但值得指出的是,KIF已经建立了一个感性差异测试框架"叫莱拉:
https://github.com/kif-framework/Lela
如果你已经在使用KIF,那么这就是你要走的路。我相信它使用了一些模糊的图像差异,因此它可以解决David Grandinetti提到的文本渲染问题。尽管如此,我还没有尝试过对抗外部比赛。
如果您对BDD / Cucumber / Gherkin语法更加熟悉,您还应该查看使用参考图像的Zucchini:
我还没有使用它,但它很好用。
答案 3 :(得分:0)