繁体   English   中英

由于Android Camera Intent重新绘制屏幕,​​Espresso测试失败

[英]Espresso tests failing due to repainting the screen by Android Camera Intent

我正在进行一项有摄像头的活动,并且通过onDraw()方法在摄像机上设置了一个遮罩,我正在为摄像机屏幕上方的导航抽屉编写测试用例,但是收到的错误是

也许主线程在合理的时间内没有闲置? 可能会有一个动画或不断重新绘制屏幕的东西。 或者活动是在创建网络呼叫? 请参阅threaddump日志。 在您的活动启动请求为1472804618974之前,事件队列最后一次空闲以供您参考,现在队列最后一次空闲时间为:1472804618974。如果这些数字相同,您的活动可能会占用事件队列

我已经在https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html上提到了已经关闭的动画

不知道需要做什么。

我已经在https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html上提到了已经关闭的动画

出现此问题不是因为动画的转换,而是因为Espresso框架字符: Espresso取决于您的实际应用程序上下文。

适用于Android的Espresso是完美且快速的测试自动化框架,但它有一个重要的限制 - 您只能在测试环境下的应用程序内部操作。

这意味着无法自动执行以下应用功能的测试:

  • 应用推送通知
  • 联系同步
  • 从另一个应用导航到您测试的应用,

因为你必须处理来自移动设备的其他应用程序 - 通知栏,联系人或人物应用程序等。

来自: http//qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

这意味着Espresso测试基于UI线程并在主线程空闲时等待()。

也许主线程在合理的时间内没有闲置? 可能会有一个动画或不断重新绘制屏幕的东西。 或者活动是在创建网络呼叫? 请参阅threaddump日志。 在您的活动启动请求为1472804618974之前,事件队列最后一次空闲以供您参考,现在队列最后一次空闲时间是:1472804618974。如果这些数字相同,您的活动可能会占用事件队列。

这意味着您的主线程实际上正忙,Espresso无法执行任何新操作,它正在等待运行的空闲闲置资源。

要解决此问题,您可以选择以下选项:

我已经使用EspressoRobotiumUiAutomator ,所以不要害怕混合使用它们。

希望它有所帮助

所以我能够解决我的问题。 问题是由于onDraw()连续调用方法invalidate()而发生的。 相反,我用postInvalidateDelayed()替换它,并且对于某些条件(如动画)仅使用invalidate() 它帮了! :)避免连续重新粉刷屏幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM