2016-03-04 30 views
3

看起来EarlGrey在测试我们的APP时无法使用等待APP闲置的好功能。得到这个错误每个屏幕上:EarlGrey试图等待5.0秒让应用程序进入空闲状态

EarlGrey试图等待5.0秒,达到了 空闲状态的应用程序,但事实并非如此。 EarlGrey现在不得不清理状态 跟踪,因为测试 - [EGT TESTLOGIN]可能造成的UI 线程处于非空闲状态无限期

现在我该功能关闭时,所有工作正常,但无法理解可能是这种问题的原因。我在Xcode 7 UI自动化方面遇到了同样的问题,但是仅在整个APP的1个屏幕上(因为一些海量数据访问器)而不是在欢迎页面上。

这里是国家AppStateTracker:

Waiting for a draw/layout pass to complete 
Waiting for root UIViewController to appear 
+0

在我看来,当测试结束时,某些东西会使应用处于非空闲状态。发生这种情况时,您能否打印出[GREYAppStateTracker sharedInstance]的描述并粘贴结果作为问题的一部分? – khandpur

+0

在说明中添加了po。但是,在我的APP上发生的事情在测试结束时并没有失败,但从一开始 –

+0

我看到'等待根UIViewController出现'。应该有一个实际导致该应用程序处于该状态的调用堆栈。它应该来自一个viewWillAppear调用。我的猜测是,有不平衡的viewDidAppear调用,它可以发生在你的UIViewController的子类未能调用[super viewDidAppear:animated];请参阅https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instm/UIViewController/viewDidAppear:,更具体地说它说**“你必须在超级你的实施中有一些问题。“** – khandpur

回答

2

如果不结束动画(如加载动画),您的应用程序将永远不会被闲置,所以,你将不得不删除动画或在一段时间后停止

如果动画确实停止,那么您可以使用FAQ中的信息在How should I handle animations?下解决您的问题。

相关问题