有没有办法在Travis CI构建中启动Android模拟器?

时间:2015-04-14 08:31:04

标签: android python unit-testing adb travis-ci

我有python wrapper-library for adb我有单元测试,它依赖于模拟器或真实设备(因为它们执行adb命令)。

我还希望将Travis CI用作构建环境,并为每个构建执行这些单元测试。

有没有办法在Travis CI中安装android模拟器,以便单元测试可以执行adb命令?

提前致谢!

2 个答案:

答案 0 :(得分: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中指定所需的系统图片。

答案 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