有一种方法将异步块作为参数。
应用程序第一次运行时,会调用此方法,并且有一个覆盖整个屏幕的动画。该方法正在进行网络呼叫,这可能需要相当长的时间,大约7秒左右。当块运行时,回调结束动画,应用程序准备再次与之交互。
当我在模拟器中运行应用程序并点击时,一切都按预期运行。当我运行EarlGrey测试目标时,动画会冻结,测试最终会失败,因为有一个元素无法找到。在动画视图(UIView
的子类)后面,即使元素不可见,仍然可以成功执行某些步骤。
最后,这只发生在应用程序的第一次运行,因为后续测试运行中的网络调用要短得多。
我已尝试更改配置以停用动画,似乎没有任何内容对我有用。我无法粘贴代码,因为该应用是专有的。
我很乐意回答任何澄清问题,非常期待一些帮助!
答案 0 :(得分:1)
免责声明:这都是@khandpur。我加入了Google Open Source Slack频道,他帮我调试了很多。
问题在于使用Facebook's Shimmer。我在setUp
方法中使用了这一行:
[UIApplication sharedApplication].keyWindow.layer.speed = 100;
这加快了动画速度,但是引起了一些闪光的冲突,不太清楚为什么。我要在他们的回购中发表评论。
我删除了这一行,虽然测试速度稍慢,但现在它们完全稳定了。
答案 1 :(得分:0)
您是否考虑过使用kGREYConfigKeyURLBlacklistRegex
将URL列入黑名单,即阻止EarlGrey等待请求? (假设你的测试不需要网络等待)。见EarlGrey/Common/GREYConfiguration.h