首页 > 解决方案 > 排毒测试 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() 的响应?

标签: androidreact-nativee2e-testingdetox

解决方案


更深入的调查表明,这可能是由一个挥之不去的动画引起的,无论出于何种原因 device.disablesynchronization() 在 Android 构建上都会忽略该动画。我现在正在根据 wix 提供的过时文档来模拟这个文件。


推荐阅读