CircleCI Build中的自动化测试失败,但有异常

Jit*_*P N 2 android automated-tests robotium circleci android-studio

Circle Ci Android Test模拟器脚本始终失败

项目中使用的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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?从circle.yml中删除模拟器测试代码是成功的

Gee*_*ist 5

试试这个circle.yml:

test:
    override:
    - ADB_INSTALL_TIMEOUT=10 ./gradlew connectedAndroidTest
        timeout: 360
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,请在以下位置添加build.gradle:

com.android.ddmlib.DdmPreferences.setTimeOut(600000)
Run Code Online (Sandbox Code Playgroud)

如果仍然没有工作,加上adbOptionsbuild.gradle:

android {
    adbOptions {
        timeOutInMs 600000
    }
}
Run Code Online (Sandbox Code Playgroud)

另见这个回购.我必须做所有3,它在那里工作.