使用Gradle的Travis-CI Android测试可以防止超时

时间:2014-10-30 01:15:20

标签: android android-gradle travis-ci

我正在尝试构建&在Travis CI上测试我的项目。它每次都在我的所有存储库上不断向我显示相同的重复输出。

这是我的travis.yml https://github.com/carts-uiet/cartsbusboarding/blob/master/.travis.yml

language: android
    android:
    components:
    # Uncomment the lines below if you want to
    # use the latest revision of Android SDK Tools
    # - platform-tools
    # - tools
    # The BuildTools version used by your project
    - build-tools-21.0.0
    # The SDK version used to compile your project
    - android-21
    # Additional components
    - add-on
    - extra
    # Specify at least one system image,
    # if you need to run emulator(s) during your tests
    - sys-img-armeabi-v7a-android-21
    # Emulator Management: Create, Start and Wait
    before_script:
    - echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a
    - emulator -avd test -no-skin -no-audio -no-window &
    - android-wait-for-emulator
    - adb shell input keyevent 82 &

这是一个这样的构建https://travis-ci.org/carts-uiet/cartsbusboarding/builds/39447907

$ javac -version
javac 1.7.0_60
before_script.1
3.53s$ echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a
Android 5.0 is a basic Android platform.
Do you wish to create a custom hardware profile [no]Created AVD 'test' based on Android 5.0, ARM (armeabi-v7a) processor,
with the following hardware config:
hw.cpu.model=cortex-a8
hw.lcd.density=240
hw.ramSize=512
vm.heapSize=48
before_script.2
0.01s
$ emulator -avd test -no-skin -no-audio -no-window &
$ android-wait-for-emulator
Failed to Initialize backend EGL display
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
error: device offline
error: device offline
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device offline
error: device offline
running
running
running
running
running
running

所有这些都会超时。

我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

更新响应:VM映像已经包含修复的android-wait-for-emulator脚本和android SDK工具版本24.0.0,默认情况下解决此问题。我删除了过时的回复和解决方法。

Build Environment Updates - 2014-12-09

答案 1 :(得分:1)

这听起来像是获取最新版脚本的最佳选择:

我将此添加到我之前的脚本中:

# Emulator Management: Create, Start and Wait
before_script:
  - echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a
  - emulator -avd test -no-skin -no-audio -no-window &
  - curl http://is.gd/android_wait_for_emulator > android-wait-for-emulator
  - chmod u+x android-wait-for-emulator
  - ./android-wait-for-emulator
  - adb shell input keyevent 82 &

网址指向github上提供的最新脚本。

希望有所帮助。 。

答案 2 :(得分:1)

您需要指示您的travis构建实际运行单元测试:

# run tests  against the emulator
- ./gradlew connectedAndroidTest
# run tests  against the JVM
- ./gradlew test