【问题标题】:Globally disabling non-Animator animations for Espresso testing为 Espresso 测试全局禁用非 Animator 动画
【发布时间】:2019-01-30 13:57:30
【问题描述】:

我目前正在 Espresso 中为一个包含许多程序动画的应用程序开发一个 UI 测试套件。其中许多动画实际上是无限循环的,这使得 Espresso 在等待空闲时无限期挂起。

现在,不幸的是,这些动画不是使用 Animator 库类开发的,因此关闭动画比例(通过开发人员设置)的常用方法在这里没有任何效果。同时,开发团队对将测试相关代码添加到应用程序代码中持谨慎态度(例如,这会阻止我使用标志/环境变量来手动停止动画)。

是否有解决方案可以在运行 UI 测试时全局禁用所有动画,而无需在应用程序中添加代码,而不管它们的实现如何?

【问题讨论】:

  • 您找到解决方案了吗?我也面临同样的问题
  • 已经有一段时间了,从那以后我学到了一些关于测试自动化的知识。所以我目前的看法是,如果不接触应用程序代码,根本不可能做到这一点(很高兴我设法说服开发人员允许我这样做)。原因是系统不可能知道所有可能随时间改变布局设置的任意代码,从而创建动画。这对你有意义吗?
  • 是的,谢谢。如果我想让测试正常工作,我想我必须做同样的事情并重新实现我的动画。
  • 如果您的动画不是应用程序正常工作所必需的,您可以在 BuildConfig 类中添加一个标志并使用它来有条件地运行动画。然后在你想运行 Espresso 测试时将该标志设置为 true/false

标签: android animation testing android-espresso ui-testing


【解决方案1】:

到目前为止,我能找到的最佳解决方案是在测试执行之前使用命令行关闭设备动画。 IE。制作一个执行这些命令的小 shell 脚本

adb shell 设置将全局 window_animation_scale 设为 0 adb shell 设置把全局transition_animation_scale 0 adb shell settings put global animator_duration_scale 0

【讨论】:

  • 问题中提到,关闭动画比例没有效果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 2017-04-07
  • 1970-01-01
相关资源
最近更新 更多