В настоящее время мы работаем над приложением React Native, используя Expo, и пытаемся заставить Detox (E2E Testing) работать в нашей среде.Мы потратили много времени, чтобы определить, где проблема.Наиболее вероятным претендентом, по-видимому, является то, что pouchDB настроен для прямой синхронизации с нашей базой данных:
LocalDB.sync(RemoteDB, {live: true, retry: true})
.on('change', onChange)
, и из-за этого detox ожидает завершения определенных сетевых запросов, которые нам действительно не нужныДетокс ждать:
Sync App State: Waiting for network requests to finish.:
Наши тесты работают нормально без синхронизации.В наших тестах на детоксикацию мы пытались заблокировать этот URL в наших блоках beforeAll и beforeEach со следующим:
await device.setURLBlacklist(['.*(OUR_IP_THAT_COUCH_IS_SYNCING_WITH).*'])
Но это в дополнение к тому факту, что детокс официально не поддерживает Expo, требуя многократных перезапусков дляоткрыть приложение, затрудняет отладку.
Если у кого-то есть какие-либо идеи по этому поводу, любая помощь будет принята с благодарностью!