Сбой при запуске тестов детоксикации из-за тайм-аута во время установки приложения

#android #detox

#Android #детоксикация

Вопрос:

При попытке запустить тесты на компьютере, настроенном в облаке (AWS), я получаю ошибку тайм-аута во время установки приложения.

Вывод с --loglevel trace показывает следующее:

 detox[7183] DEBUG: [exec.js/EXEC_CMD, #16] "/opt/android-sdk/platform-tools/adb" -s emulator-5554 shell "pm install -r -g -t /data/local/tmp/detox/Application.apk"
detox[7183] WARN:  at e2e/utils/testRail.js:49:25
 Creating a new Run in TestRail has failed with the following error
{}
detox[7183] ERROR: [DetoxExportWrapper.js/DETOX_INIT_ERROR]
 { DetoxRuntimeError: Aborted detox.init() execution, and now running detox.cleanup()

HINT: Most likely, your test runner is tearing down the suite due to the timeout error
    at Detox.[_assertNoPendingInit] (/home/fundbox/mobileNative/node_modules/detox/src/Detox.js:204:9)
    at Detox.beforeEach (/home/fundbox/mobileNative/node_modules/detox/src/Detox.js:111:37)
    at DetoxExportWrapper.(anonymous function).args [as beforeEach] (/home/fundbox/mobileNative/node_modules/detox/src/DetoxExportWrapper.js:87:32)
    at DetoxAdapterImpl.beforeEach (/home/fundbox/mobileNative/node_modules/detox/runners/jest/DetoxAdapterImpl.js:28:22)
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'DetoxRuntimeError' }
  

Однако, когда я запускаю команду установки вручную, она завершается успешно. time Команда показывает, что для установки требуется 1m51s:

 $ time /opt/android-sdk/platform-tools/adb -s emulator-5554 shell "pm install -r -g -t /data/local/tmp/detox/Application.apk"
Success

real    1m51.100s
user    0m0.000s
sys 0m0.000s
  

Есть ли способ настроить и увеличить время ожидания для этого шага или глобально?

Ответ №1:

Кажется, я нашел место. По-видимому, есть файл для настройки констант тайм-аута e2e/consts.js .

Следующее место выглядит соответствующим:

 exports.wait = 2000;
exports.timeout = 30000;
exports.jestTimeout = 120000;
  

Я обновил exports.jestTimeout значение до более высокого значения, и тест смог пройти проблемный шаг.