android - 排毒测试 device.disableSynchronization() 适用于 iOS 但不适用于 android
问题描述
我的测试套件在 iOS 上运行良好,该应用程序运行着许多后台进程,阻止大部分测试在同步模式下工作。异步命令在 iOS 模拟器上正常运行,但是当我在 android 模拟器上运行它们时,就好像我从未调用过 await device.disableSynchronization()。
测试仍然挂起,控制台日志:
The app is busy, due to:
- Enqueued timers
- Animations running on screen
关于如何解决这个问题的任何想法?
进一步审查显示错误消息:
该应用程序未响应以下网络请求:
奇怪的是列出的网络请求已经完成。该应用程序据称没有响应的请求是一个按钮,它导航到一个新的屏幕,这会导致一个有点冗长的网络请求。网络请求完成后,其他进程继续运行,需要禁用同步。由于 Detox 仍在等待应用程序对按钮点击的一些响应,因此它不会继续执行下一个非同步操作。有什么方法可以确保 Detox 收到这个 .tap() 的响应?
解决方案
更深入的调查表明,这可能是由一个挥之不去的动画引起的,无论出于何种原因 device.disablesynchronization() 在 Android 构建上都会忽略该动画。我现在正在根据 wix 提供的过时文档来模拟这个文件。
推荐阅读
- angular-material - 一旦文本框变脏并且处于焦点位置,如何显示 mat-error?
- node.js - 在亚马逊管理的区块链超级账本结构 1.2 上部署和公开链代码作为 REST api
- php - php curl 的请求池
- java - 即使不满足标记条件,Travis CI 在主服务器上构建运行部署阶段
- android - 横幅广告和插页式广告未展示?
- android - 当 EditTextvalue 每次更改时,将值从活动传递到当前活动片段
- c - Cython:将指针传递给采用 void ** 的函数中的指针
- aspnetboilerplate - 如何停止生成动态 web api?
- java - 如何从 void 方法调用非 void 方法?
- ruby-on-rails - Errno::ENOENT: 功能测试后没有这样的文件或目录@rb_file_s_mtime