2016-09-22 5 views
8

Если я запускаю контрольно-измерительные тесты на своем локальном эмуляторе, они работают 10 из 10 раз отлично, но когда я пытаюсь запустить те же тесты на AVD в Travis CI, я случайным образом получитьОшибка тестирования инструментальных средств Android на Travis CI AVD, но работа с локальным эмулятором

FAILED java.lang.RuntimeException: Could not launch intent Intent { } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was xxxxxxx and now the last time the queue went idle was: xxxxxxxxx. If these numbers are the same your activity might be hogging the event queue.

Я попытался удалить все прогресс бары и все, но все еще его вопрос, который происходит только случайно и на Трэвиса. Мой travis.yml выглядит следующим образом:

env: 
    global: 
    - ANDROID_TARGET=android-19 
    - ANDROID_ABI=armeabi-v7a 
    before_script: 
     - android list targets 
     - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI 
     - emulator -avd test -no-skin -no-audio -no-window -no-boot-anim & 
     - android-wait-for-emulator 
     - adb shell input keyevent 82 & 
    script: 
     - ./gradlew jacocoTestReport assembleAndroidTest connectedCheck zipalignRelease 

ответ

0

Если вы хотите использовать android-wait-for-emulator скрипт, пожалуйста remove-no-boot-anim вариант это depends on обнаружить, когда эмулятор будет готов.

В качестве альтернативы, замените android-wait-for-emulator скрипт фиксированной sleep time как это:

- sleep 300 
    - adb shell input keyevent 82 & 

Вы должны выбрать время сна, основываясь на каждой продолжительности загрузки API.