Я видел несколько ссылок и сообщений о запуске AndroidTest в Docker. Как:
https://dzone.com/articles/running-android-tests-in-docker
https://github.com/ksoichiro/android-tests/tree/master/docker-emulator
И еще немного. Тем не менее, все они кажутся неподходящими для AndroidTest в CI, так как им требуется настоящая виртуальная машина, или они просто слишком старые.
Я попробовал следующие строки Docker Image (Partial):
RUN /opt/adk/tools/bin/sdkmanager "emulator" "build-tools;${BUILD_TOOLS}" "platforms;${ANDROID_PLATFORM}" "system-images;${ANDROID_PLATFORM};google_apis;armeabi-v7a" \
&& echo no | /opt/adk/tools/bin/avdmanager create avd -n "Android" -k "system-images;${ANDROID_PLATFORM};google_apis;armeabi-v7a" \
А затем я запускаю эмулятор, используя:
/opt/adk/emulator/emulator @Android -writable-system -nocache -no-snapstorage &
Однако при попытке запустить connectedAndroidTest
были некоторые странные исключения, например:
Caused by: com.android.ddmlib.InstallException: Unknown failure: Error: Could not access the Package Manager. Is the system running?
Или, если я попытаюсь вручную установить тестовый APK и запустить am instrument
:
android.util.AndroidException: Can't connect to activity manager; is the system running?
Итак, мой вопрос: кто-нибудь запускает AndroidTest на эмуляторе как часть CI на докере? Значит, образ, который вам просто нужен для монтирования вашего проекта и запуска gradle connectedAndroidTest
, и все работает? Есть ли рабочий пример для этого?