【问题标题】:Is there a way to start android emulator in Travis CI build?有没有办法在 Travis CI 构建中启动 android 模拟器?
【发布时间】:2015-04-14 08:31:03
【问题描述】:

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

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

有没有办法在 Travis CI 中以某种方式提供 android 模拟器,以便单元测试可以执行 adb 命令?

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    根据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中指定您需要的系统映像即可。

    【讨论】:

    • 感谢您的回答!
    【解决方案2】:

    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
    

    【讨论】:

    • 感谢您的回答,但问题是关于启动模拟器,而不是关于如何管理内存消耗问题
    • 实际上让模拟器在 travis-ci 上可靠地启动和运行时遇到了很多问题。为了以有用的方式实际运行模拟器,这是我必须做的。如果基本版本适合你的工作,那你很幸运 :)
    • 先生,我只想谢谢你。你拯救了我的一天,三天试图弄清楚如何执行 Espresso 测试,当我刚刚放弃时,你的 after_script 建议就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多