0

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

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

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

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

我尝试更改配置以禁用动画,但似乎没有什么对我有用。我不能真正粘贴代码,因为该应用程序是专有的。

我很高兴回答任何和所有澄清问题,并非常期待一些帮助!

4

2 回答 2

1

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

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

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

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

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

于 2017-02-10T01:07:11.040 回答
0

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

于 2017-02-08T22:22:02.390 回答