使用 detox 以不同方向查看 UI (Android)
Posted
技术标签:
【中文标题】使用 detox 以不同方向查看 UI (Android)【英文标题】:Using detox to look at UI in different orientations (Android) 【发布时间】:2020-11-29 21:16:32 【问题描述】:所以我使用detox 来截取我的应用程序的屏幕截图。我正在使用已连接的 android 设备。 device.takeScreenshot 功能有效。现在,查看我的应用在不同方向上的外观的最佳方式是什么?是改变平板电脑方向并再次运行测试的唯一方法吗?还是有更聪明的方法?
【问题讨论】:
【参考方案1】:我不完全确定你在这里问什么,但为了改变方向,你可以使用device.setOrientation()
。
是否只有更改平板电脑方向并再次运行测试的唯一方法?
对我来说,这听起来像是两个独立的用例(纵向与纵向)。会更容易维护。
最后,就屏幕截图测试而言,您可能会发现 Detox 的screenshots guide 中描述的做法很有用:
...
该概念主要用于验证设备屏幕上出现的元素的正确视觉结构和布局,以快照测试的形式。即,通过遵循这些概念步骤:
截取一次屏幕截图,然后手动进行视觉验证。 将其存储为 e2e 测试资产(即快照)。 从那时起,将其用作与后续测试中截取的屏幕截图进行比较的参考点。
const fs = require('fs'); describe('Members area', () => const snapshottedImagePath = './e2e/assets/snapshotted-image.png'; it('should greet the member with an announcement', async () => const imagePath = (take screenshot from the device); // Discussed >below expectBitmapsToBeEqual(imagePath, snapshottedImagePath); ); ); function expectBitmapsToBeEqual(imagePath, expectedImagePath) const bitmapBuffer = fs.readFileSync(imagePath); const expectedBitmapBuffer = fs.readFileSync(expectedImagePath); if (!bitmapBuffer.equals(expectedBitmapBuffer)) throw new Error(`Expected image at $imagePath to be equal to image >at $expectedImagePath, but it was different!`);
重要提示:推荐的更实用的方法是使用更高级的 3rd 方图像快照和比较工具,例如 applitools。
【讨论】:
因此 device.setOrientation(orientation) 的指南说“目前仅在 ios 模拟器中可用。”。 github.com/wix/Detox/blob/master/docs/… 文档是否已经过时?我希望它可以在 Android 设备(物理)上运行。 很抱歉。它应该也可以在 Android 上运行!以上是关于使用 detox 以不同方向查看 UI (Android)的主要内容,如果未能解决你的问题,请参考以下文章
移动模拟器/模拟器 Detox 屏幕截图工件在不同主机上运行时会有所不同
如何仅在 IOS 上运行 Detox 测试并禁用 Android 运行
Detox - 测试模式在 React Native 中的可见性
Detox - 如何在新规范运行之前运行以前的规范以避免重复的测试步骤?