首页 > 解决方案 > XCUITest 集在 macOS 和 iOS 上运行

问题描述

我们正在使用 Catalyst 构建一个应用程序,我需要在 iOS 和 macOS 上运行 UI 测试。但是,在 iOS/iPadOS 中,有一些手势(滑动、长按等)在 macOS 上不存在。因此,当我尝试在 macOS 上构建测试时,它会失败并出现诸如"Value of type 'XCUIApplication' has no member 'swipeDown'" 之类的错误。

有没有人知道如何为 macOS 和 iOS 保留一组测试?提前致谢。

标签: iosxcuitest

解决方案


macOS 无法使用滑动,因为 macOS 不能在触摸屏设备上运行。

如果您使用 ScreenObject(又名 PageObject)模式分隔元素、步骤和测试代码,您仍然可以重用您的代码。

在互联网上搜索更多文档。你也可以在这里查看我对这个模式的实现 https://github.com/rzakhar/xctest-assignment

如果您使用 @available 或 #if API,您的步骤可以是多平台的

#if os(iOS)
    cell.swipeLeft()
    cell.buttons["Delete"].tap()
#else
    cell.buttons["More"].click()
    cell.buttons["Delete"].click()
#endif

推荐阅读