gpt4 book ai didi

ios - 并行执行 Xcode 10 UI 测试时禁用模拟器的连接硬件键盘设置

转载 作者:可可西里 更新时间:2023-11-01 03:34:48 30 4
gpt4 key购买 nike

当我在启用并行执行的情况下运行 UI 测试时,会创建现有模拟器(例如 iPad Air 2)的多个克隆来运行不同的测试套件。

在运行脚本中 from this StackOverflow answer ,我正在注入(inject)一个 plist 键“ConnectHardwareKeyboard”,其值为 false 以禁用启动模拟器时默认启用的硬件键盘连接: Hardware -> Keyboard -> Connect Hardware Keyboard

此脚本将为现有模拟器 (iPad Air 2) 正确设置值,但是当测试并行执行时,会创建 iPad Air 2 的多个克隆,并且克隆的 plist 不是原始的克隆设备。克隆的设备 plist 中根本没有设置任何标志,但硬件 -> 键盘 -> 连接硬件键盘显示为已选中。

这导致我的 UI 测试失败,因为当我在文本字段中键入测试后试图关闭键盘时键盘丢失。

我查看了 StackOverflow 和 Apple Developer 论坛上的许多帖子,试图解决这个问题,但没有找到任何结果。这对其他人来说一定是个问题……有没有人遇到同样的问题和/或找到解决方案?

最佳答案

和你一样,我已经在互联网上搜索过这个问题的优雅解决方案,但没有找到。

因此与此同时,在比我聪明得多的人弄清楚这一点之前,我在整个测试过程中实现了以下内容:

import Foundation
import XCTest

extension XCUIApplication {

//Hardware keyboard makes tests fail. Reporting from these failures is ambiguous. This function is intended to fix that issue (for now, until we figure out something better)
public func keyboardReadyCheck() {
if !self.keys["S"].waitForExistence(timeout: 3) {
XCTFail("The software keyboard could not be found. Use Xcode Simulator settings to turn off hardware keyboard (Keyboard shortcut COMMAND + SHIFT + K while simulator has focus)")
}
}
}

这让我可以在整个测试过程中使用 XCUIApplication.keyboardReadyCheck,如果打开硬件键盘,这将导致立即失败。

这不是一个很好的解决方案,但它比看着整个套件运行并在它找不到的愚蠢事情上超时,然后报告“目标不可命中”或“元素未找到”,然后再报告要快得多我得去弄清楚发生了什么。

关于ios - 并行执行 Xcode 10 UI 测试时禁用模拟器的连接硬件键盘设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229209/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com