EarlGrey 冻结动画并且不调用回调

EarlGrey Freezes Animation And Doesn't Call Callback

有一个以异步块作为参数的方法。

第一次应用运行s,调用了这个方法,出现了覆盖整个屏幕的动画。该方法是进行网络调用,这可能需要很长时间,大约 7 秒左右。当块 运行s 时,回调结束动画,应用程序准备好再次交互。

当我 运行 模拟器中的应用程序并四处点击时,一切都 运行 正常。当我运行 EarlGrey测试目标时,动画卡住,最终测试失败,因为有一个元素找不到。在动画视图(UIView 的子类)后面,一些步骤仍然成功执行,即使元素不可见。

最后,这只发生在应用程序的第一个 运行 上,因为后续测试 运行 中的网络调用要短得多。

我试过更改配置以禁用动画,但似乎没有任何效果。我不能真正粘贴代码,因为该应用程序是专有的。

我很乐意回答任何和所有澄清问题,非常期待得到一些帮助!

您是否考虑过使用 kGREYConfigKeyURLBlacklistRegex 将 URL 列入黑名单,即防止 EarlGrey 等待请求? (假设您的测试不需要网络等待)。见 EarlGrey/Common/GREYConfiguration.h

免责声明:这都是@khandpur。我加入了 Google Open Source Slack 频道,他帮我调试得很辛苦

问题是 Facebook's Shimmer 的使用。我在 setUp 方法中有这一行:

[UIApplication sharedApplication].keyWindow.layer.speed = 100;

这是在加速动画,但与微光有一些冲突,不太清楚为什么。我将在他们的回购中发表评论。

我删除了那一行,虽然测试速度有点慢,但它们现在完全稳定了。