ios – XCTestCase:等待应用程序空闲

我的UI测试失败,因为测试等待无休止,直到应用程序空闲.我看不出有什么事情发生在后台,像一个加载微调.

它只发生在一个选项卡上.所有其他选项卡都可以插入,但测试在屏幕3上失败.我在屏幕3上检测到测试后,单击另一个选项卡,测试恢复并成功完成.

有任何想法吗?

- (void)testExample
{

    XCUIElementQuery* tabBarsQuery = self.app.tabBars;

    [tabBarsQuery.buttons[@"Screen2"] tap];
    [tabBarsQuery.buttons[@"Screen3"] tap];
    [tabBarsQuery.buttons[@"Screen1"] tap];
    [tabBarsQuery.buttons[@"Screen4"] tap];

}

解决方法

也许你有一些动画或一些其他背景(或前景)活动,在主线程上经常更新你的UI.这使得应用程序永远不会“停顿” – 至少在此选项卡上.在我们的应用程序中,我们使用了“重复”选项. cpu使用率很好,并不是电池耗尽,而是使测试每次都失败.禁用动画解决问题.我找不到强制测试不要等待空闲的方法,所以我们最终使用#ifdef为UI测试目标使用运行时参数禁用动画,如下所述: https://stackoverflow.com/a/33466038/168996

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...