2015-11-03 3 views
2

Circle Ci Android Test эмулятор скрипт всегда терпит неудачуавтоматизации тестирования в CircleCI Строить не удалось с исключением

circle.yml файл, используемый в проекте.

# 
#Build configuration for Circle CI 
# 

general: 
artifacts: 
    - /home/ubuntu/TestApp/app/build/outputs/apk/ 

machine: 
environment: 
    ANDROID_HOME: /usr/local/android-sdk-linux 
dependencies: 
override: 
    - echo y | android update sdk --no-ui --all --filter tools,platform-tools,build-tools-21.1.2,android-21,extra-google-m2repository,extra-google-google_play_services,extra-android-support 
    - ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies 


test: 
override: 
    - (./gradlew assemble): 
     timeout: 360 



test: 
override: 
# start the emulator 
- emulator -avd circleci-android21 -no-audio -no-window: 
    background: true 
    parallel: true 
# wait for it to have booted 
- circle-android wait-for-boot 
# run tests against the emulator. 
- ./gradlew connectedAndroidTest 
# copy the build outputs to artifacts 
- cp -r /home/ubuntu/TestApp/app/build/outputs $CIRCLE_ARTIFACTS 
# copy the test results to the test results directory. 
- cp -r /home/ubuntu/TestApp/app/build/outputs/androidTest-results/* $CIRCLE_TEST_REPORT 

Сообщение об ошибке показано на CircleCi.

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException 
at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:108) 
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:125) 
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: com.android.ddmlib.InstallException 
at com.android.ddmlib.Device.installPackages(Device.java:927) 
at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:105) 
... 8 more 
    Caused by: com.android.ddmlib.ShellCommandUnresponsiveException 
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:513) 
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:390) 
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:359) 
at com.android.ddmlib.Device.executeShellCommand(Device.java:566) 
at com.android.ddmlib.Device.createMultiInstallSession(Device.java:987) 
at com.android.ddmlib.Device.installPackages(Device.java:884) 
... 9 more 

Как решить эту проблему? Это успех, когда тест эмулятор удалить код из circle.yml

ответ

5

Попробуйте это в circle.yml:

test: 
    override: 
    - ADB_INSTALL_TIMEOUT=10 ./gradlew connectedAndroidTest 
     timeout: 360 

Если он не работает, добавьте это в build.gradle:

com.android.ddmlib.DdmPreferences.setTimeOut(600000) 

Если он все еще не работает, добавьте adbOptions в build.gradle:

android { 
    adbOptions { 
     timeOutInMs 600000 
    } 
} 

См. Также this repo. Я должен был сделать все 3, и он работает там.

+0

добавление параметра тайм-аута в connectedandroidtest определенно помогло. – josh527

+0

Это сработало для меня. Я тестировал загрузку и загрузку файлов и, как таковой, должен был увеличить значение тайм-аута по умолчанию –

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

  • Нет связанных вопросов^_^