如何在不同的iOS版本中测试UI - iOS UI测试

4
我正在设计一个UI组件库。
为了满足某些设计需求,我需要通过检查iOS版本来进行不同的实现,因为较低版本可能不支持最新的语法/特性。
我的库中有一些方法正在尝试实现这一点。
func designSth(){
   if #available(iOS 10.0, *) {
      //implement sth support for iOS 10 and above
   }else{
      //implement sth for device below iOS 10
   }
}

然而,当我编写UI测试用例时,它总是覆盖iOS 10及以上版本,但不覆盖iOS 10及以下版本。

有没有一种方式可以在UI测试脚本中设置目标模拟器iOS版本? 比如XCUIApplicationXCUIElement这样的对象,可以在UI测试脚本的setUp()方法中进行配置。


你不能简单地选择所需的iOS版本模拟器并在其上运行测试吗?你是在Xcode中手动运行测试还是通过CI自动运行测试? - Michał Myśliwiec
@MichałMyśliwiec 我正在Xcode中运行我的UI测试。您的意思是我选择所需的模拟器版本吗?如果我使用这种方式,我相信覆盖率将始终反映代码的一侧,无论是iOS10以上还是以下。 - Peter Guo
是的,你说得对。但使用新的 Xcode 10.3,你可以为两个不同的 iOS 版本生成两个报告,然后使用新的 xccov 命令行工具合并这些报告。请参见 xcrun xccov 的示例。虽然我还没有验证是否符合你的需求,请告诉我这是否有所帮助。 - Michał Myśliwiec
1个回答

0

您可以使用以下代码在 UI 测试中检查 iOS 版本:

let iOSVersion = ProcessInfo().operatingSystemVersion.majorVersion

然后将您的测试定义包装在 iOSVersion 检查周围。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接