gpt4 book ai didi

swift - XCUITest 类拆解不会删除应用程序。但是如果它的实例被拆解就可以工作。我究竟做错了什么?

转载 作者:行者123 更新时间:2023-11-28 10:37:00 24 4
gpt4 key购买 nike

我有一个正在尝试删除应用程序的类拆解,但它无法识别 app.terminate()。

class DeviceSettingsUtilities : UITestUtilities {
func removeApp(productName:String){
print("in teardown")
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
XCUIApplication().terminate() // this does nothing
XCUIApplication(bundleIdentifier: "com.xxx.xxxx").terminate()//this does nothing too, but this works when called as an instance teardown
sleep(5)
springboard.activate()
let icon = springboard.icons.matching(identifier: productName).firstMatch
// icon.exists is false when called as a class teardown
// icon.exists is true when called as an instance teardown
if icon.exists {
let iconFrame = icon.frame
let springboardFrame = springboard.frame
icon.press(forDuration:1.3)
springboard.coordinate(withNormalizedOffset: CGVector(dx: ((iconFrame.minX + 3) / springboardFrame.maxX), dy:((iconFrame.minY + 3) / springboardFrame.maxY))).tap()
sleep(5)
springboard.buttons["Delete"].firstMatch.tap()
sleep(5)
}
XCUIApplication().terminate()
}

这是在测试用例类的拆卸方法中调用的,如下所示

override class func tearDown() {
super.tearDown()
let deviceSettings = DeviceSettingsUtilities()
deviceSettings.removeApp(productName: ProductName.rawValue)
}

这不会删除应用程序,但是如果我将类 func tearDown() 更改为 func tearDown() ,它会毫无问题地删除应用程序。不知道我错过了什么。有什么建议吗?

最佳答案

这似乎是最新 Xcode 10 中的一个错误。当声明为 class 时,XCUIApplication.terminate()tearDown() 中似乎不起作用。

这可以通过两种方式解决:

第一个选项是使用:

override func tearDown() {
XCUIApplication().terminate()
super.tearDown()
}

代替:

override class func tearDown() {…} 

或者,以不同方式终止应用程序(按主页按钮,打开不同的应用程序...)。但是,我会使用第一种方式。

同时考虑向 Apple 报告此问题,以便他们修复。

编辑:这与应用程序状态 (XCUIApplication().state.rawValue) 无关,因为它在测试和 tearDown() 中相同(4 = 前台运行)。此外 - 官方文档说 .terminate() 将终止应用程序,该应用程序与 Xcode 有一个调试 session ,但调试 session 在 tearDown() 中也处于事件状态。所以它真的很可能是 Xcode 中的一个错误。

关于swift - XCUITest 类拆解不会删除应用程序。但是如果它的实例被拆解就可以工作。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53181823/

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