我在XCode 8中为一个非常复杂的应用程序编写UI测试。我发现了几个问题,其中之一就是我运行的每一个测试都需要几分钟。
我正在运行的特定测试的流程甚至没有那么复杂。
我收到了很多“等待应用程序闲置”的消息。
有谁知道为什么测试要花这么长时间才能运行,或者你对我如何加快测试速度有什么建议吗?WWDC的演示基本上是即时的,但这是一个非常简单的应用程序。
这是一个例子,说明我看到了什么,花了多长时间。(测试也仍在运行!)
T= 504.16s等待应用程序空闲t= 625.29s应用程序动画完成通知未收到,将尝试继续。综合事件t= 625.67s等待app空闲
谢谢!
更新:当我轻微地与应用程序交互时,同时保持我所需的元素可见,比如打开一个表视图,测试就会继续进行。
发布于 2016-12-06 20:00:16
谢谢@Oletha -我发现了这个问题,这可能是这个应用程序特有的:
在一次删除大量代码以查看问题所在之后,我们发现在连续的行中,我们在UIRefreshControl子类上调用了UIRefreshControl和endRefreshing。
其中的一些东西阻碍了用户界面,足以让应用程序在“等待应用程序空闲”中停留几分钟。
我们用自定义方法替换了这两行,现在测试正常运行。
发布于 2016-12-06 08:32:40
框架将等待应用程序变得静态,因此如果有任何视图正在动画或显示任何活动指示符,可能包括状态栏中的网络活动指示符,框架将挂起,直到应用程序静止为止。这是为了防止在UI测试运行时加载动画和组件的争用条件。
如果您认为可以覆盖其中一些行为以加快UI测试,则可以尝试删除活动指示符。
发布于 2018-05-13 19:40:46
我也遇到过同样的问题。解决方案是将对endRefreshing的调用从处理程序移到在处理程序中触发的网络方法的末尾。换句话说,如果刷新表视图,请确保在加载所有数据后进行endRefreshing。
https://stackoverflow.com/questions/40983184
复制相似问题