2015-04-14 5 views
4

У меня есть python wrapper-library for adb, где у меня есть модульный тест, который зависит от эмулятора или реального устройства (поскольку они выполняют команды adb).Есть ли способ запустить Android-эмулятор в сборке Travis CI?

Я хочу также использовать Travis CI в качестве среды сборки вместе с выполнением этих модульных тестов для каждой сборки.

Есть ли способ иметь эмулятор Android, доступный как-то в Travis CI, чтобы модульные тесты могли выполнять команды adb?

Заранее благодарен!

ответ

6

Согласно Travis CI documentation, вы можете запустить эмулятор со следующей скрипт в .travis.yml:

# Emulator Management: Create, Start and Wait 
before_script: 
    - echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 

Просто укажите образ системы вам нужно в components.

+0

Спасибо за ответ! –

+1

Это хорошо, но навсегда навсегда запускается каждый раз. –

4

Ответ Bruno Parmentier включает в себя то, что в настоящее время рекомендует Travis-CI, но у меня были проблемы с нехваткой памяти VM. Поэтому вместо запуска эмулятора во время работы сборки я изменил свой конфиг, чтобы запустить сборку, затем запустить эмулятор, а затем запустить тесты.

sudo: false 

language: android 

env: 
    global: 
    # switch glibc to a memory conserving mode 
    - MALLOC_ARENA_MAX=2 
    # wait up to 10 minutes for adb to connect to emulator 
    - ADB_INSTALL_TIMEOUT=10 

android: 
    components: 
    - platform-tools 
    - extra-android-m2repository 
    - build-tools-22.0.1 
    - android-22 
    - sys-img-armeabi-v7a-android-22 

script: 
    - ./gradlew assemble lint 

after_script: 
    # Emulator Management: Create, Start and Wait 
    - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 
    # now run the tests 
    - ./gradlew connectedCheck 
+0

Спасибо за ваш ответ, но вопрос состоял в том, что начался эмулятор, а не о том, как управлять проблемами потребления памяти. –

+1

У меня было много проблем с тем, чтобы эмулятор запускался и работал надежно на travis-ci. Это то, что я должен был сделать, чтобы действительно запустить эмулятор полезным способом. Если базовая версия работает для вашей работы, вам повезло :) –

+0

Сэр, я просто хочу поблагодарить вас. Вы спасли мой день, три дня, пытаясь понять, как выполнять тесты эспрессо, и когда я просто сдавался, ваше предложение after_script работало как шарм. –

Смежные вопросы