gpt4 book ai didi

ios - React-Native 项目中的 "App failed to quiesce within 60s"

转载 作者:可可西里 更新时间:2023-11-01 03:58:56 24 4
gpt4 key购买 nike

所以我正在尝试在我的 React Native 项目上运行 XCode UI 测试。我的目标是使用 faSTLane/snapshot 抓取我的应用程序的屏幕截图。

我终于想出了如何编写我的应用程序脚本来执行我想做的事情。不幸的是,在调用 app.otherElements["mainButton"].tap() 后,应用程序卡住并显示 App failed to quiesce within 60s 消息。

据我所知,我的应用程序似乎是静态的,没有更新或动画化任何东西。但我不清楚 UI 测试使用什么来检测启发式方法,因此它可能使用了一些内部状态或检查线程。

我怀疑有一些 React Native 行为阻止了 UI 测试将事情视为已完成。不幸的是,没有任何真正的能力来查看 UI 测试在做什么,我什至不确定我需要在哪里深入研究 React Native 来修复它。 :(

如有任何帮助,我们将不胜感激!

最佳答案

上面链接的解决方法对于有问题的 View 和在

中禁用动画的行
viewWillAppear:
- (void) viewWillAppear: (BOOL)animated {
if ([[[NSProcessInfo processInfo] environment][@"UITEST_DISABLE_ANIMATIONS"] isEqualToString:@"YES"]) {
[UIView setAnimationsEnabled:NO];
}
}

并在 viewWillDisappear 中重新打开动画:

- (void) viewWillDisappear:(BOOL)animated {  
if ([[[NSProcessInfo processInfo] environment][@"UITEST_DISABLE_ANIMATIONS"] isEqualToString:@"YES"]) {
[UIView setAnimationsEnabled:YES];
}
}

在您的测试中扩展 XCUIApplication 并设置变量。然后在你的设置方法中调用 launchvariables 函数

extension XCUIApplication {  
func launchTestsWithEnvironmentVariables() {
launchEnvironment = [
"UITEST_DISABLE_ANIMATIONS" : "YES"
]
self.launch()
}
}




override func setUp() {
super.setUp()
continueAfterFailure = false
XCUIApplication().launchTestsWithEnvironmentVariables()
}




func testblahblah {

这设置了一个环境变量,该变量将禁用该特定 View 的动画。唯一的缺点是,如果您喜欢的话,您将不会为该 View 测试动画。 Hacky 解决方法,但目前有效。

PS 这对我很有帮助

关于ios - React-Native 项目中的 "App failed to quiesce within 60s",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781132/

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