使用Unity,您可以将应用部署在多个平台上。对Unity开发者来说,维持所有平台上的图像正确是十分困难的。本文将介绍如何确保图形功能不会意外破坏。

我们有许多自动化测试。在编辑器和播放模式下有单元测试、集成测试、还有Unity内置的系统测试,现在我们有了图形测试。可以通过图形测试禁用或启用场景的某些图形功能,构建场景并在所有支持的设备上运行,最终渲染并输出一张图片。

然后将输出的图片与之前该场景与图形设置及设备上的参照图进行比较。如果有任何一张结果图与参照图不一致,我们就会将这个测试设置为失败,同时需要人工验证是否因为有意或无意的改变造成失败的结果,并对此进行修复。

由于有时不太容易发现参考图与结果图的差异(示例图如下),我们也提供了失败测试的差异性图片。

170842t2e7xt73ddv37fzx.png
图片1.从左到右,参照图,测试结果图及差异性图片
图形测试相比于普通测试较为困难的一点就是容易失败。不同的平台、设备和显卡都会产生不同的结果。所以为了让这些图形测试产生一致的结果,就必须在我们已经确保硬件相同的测试处理机上执行测试。这就意味着更新或添加新测试的工作流程会变得复杂,开发者必须按照以下步骤操作:
更改并上传 在所有合适的设备上运行图形测试 等待测试完成及失败 从每一个构建中下载失败的参照图 比较每一个参照图和结果图的差异来确保是按照预期进行的更改 将所有的新图片都复制到需要被更新的图形测试仓库中 将更改提交到图形测试库中 再一次运行图形测试

这整个流程将消耗大量的时间,所以为了帮助简化该流程,我们做了一个简单的Polymer 应用,这是基于Asp.net核心后端程序,用于存储统计结果,并在指定版本中查找所有的图形测试。然后从构建系统中下载每个版本的图形测试结果,并将结果显示在单独的网页上。

170842yu36x46z67e48y57.png
开发者可以看到失败的测试,并比较他们与参照图和差异性图片的不同。然而,有时这两张图片之间的差异也不容易识别,请看下面两张图片:

170842szwsd5dq53sp9d7q.png
开发者可以利用该工具切换测试图和参照图及差异性图片,以便快速发现图片上的改变。这对比较差异不明显的两张图片很有帮助,您可以来回切换两张图片进行对比。

170843xp0ja8pjrk7kdm17.gif
开发者还可以选择想要更新的测试,最终利用一条命令自动下载并更新选中的图片到图形测试库中,或者手动下载包含正确文件结构的合并压缩文件,然后手动将它们复制到图形测试库中。

该工具已针对33种构建配置进行了超过13700次图形测试,并且图形库每天均有小幅度更新,它将帮助开发者简化工作流程,并减少进行图形测试的一些手动工作。
锐亚教育

锐亚教育 锐亚科技 unity unity教程