У нас возникли проблемы с запуском наших тестов Android с использованием Detox.
Мы создали совершенно новый собственный реактивный проект с точно такими же зависимостями и структурой package.json, что и в примере с Detox Jest.
Мы можем собрать пакеты android, используя npm run build: android-debug, и запустить тесты, используя npm run test: android-debug.
Во время выполнения мы заметили exec.js /KILL, после чего наш тестовый прогон зависает и в конце концов останавливается.
...
...
...
detox[33690] DEBUG: [exec.js/EXEC_CMD, #15] /Users/dorota/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "ps | grep "com.binbuddy$""
detox[33690] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=testee not connected, cannot fw action (sessionId=9456756b-0d52-0847-b4a7-f7e52b993ad0)
detox[33690] DEBUG: [**exec.js/KILL**] sending SIGINT to [pid = 33711]: /Users/dorota/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:57813 -e detoxSessionId 9456756b-0d52-0847-b4a7-f7e52b993ad0 -e debug ZmFsc2U= com.binbuddy.test/android.test.InstrumentationTestRunner
Однако, когда мы запускаем пример шутки Detox при условии, что мы получаем следующее поведение, вместо KILL
выше мы получаем LOGIN
иLOGIN_SUCCESS
:
...
...
...
detox[34701] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=testee not connected, cannot fw action (sessionId=e0029d9a-137a-90d8-09a5-2ebd70c8410f)
detox[34701] DEBUG: [**DetoxServer.js/LOGIN**] role=testee, sessionId=e0029d9a-137a-90d8-09a5-2ebd70c8410f
detox[34701] DEBUG: [**DetoxServer.js/LOGIN_SUCCESS**] role=testee, sessionId=e0029d9a-137a-90d8-09a5-2ebd70c8410f
и тестовый запуск успешно выполнен на устройстве.
Не могли бы вы пролить свет на то, что может быть не так с нашей настройкой?В конфигурации нашего проекта Android чего-то не хватает?
Взглянув на проекты Android, мы заметили некоторые различия между ними, например, build.gradle и gradle.properties
build.gradle имеет следующееразница:
maven {
// All of Detox' artifacts are provided via the npm module
url "$rootDir/../node_modules/detox/Detox-android"
}
и gradle.properties имеет следующую разницу:
android.useDeprecatedNdk=true