Travis模拟器在android-wait-for-emulator之后停止

时间:2016-02-16 17:16:30

标签: android android-emulator travis-ci

嗨,我有下一个travis配置:

语言:android

@Test
public void index() throws Exception {
    this.mockMvc.perform(get("/api/").contextPath("/api").accept(MediaTypes.HAL_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}

好的,如果我运行这个,请下载所有依赖项,但运行模拟器时停止它。

env:
  global:
  - JAVA8_HOME=/usr/lib/jvm/java-8-oracle
  - TERM=dumb

jdk:
  - oraclejdk8

android:
  components:
   - platform-tools
   - tools
   - build-tools-23.0.1
   - build-tools-22.0.1
   - android-23
   - android-22
   - extra
   - extra-android-support
   - extra-google-google_play_services
   - extra-google-m2repository
   - extra-android-m2repository
   - addon-google_apis-google-23
   - addon-google_apis-google-22

before_script:
  - echo no | android create avd --force --name test --target android-21 --abi armeabi-v7a
  - emulator -avd test -no-skin -no-audio -no-window -gpu off -no-boot-anim &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &

script:
  - ./gradlew :projectcore:checkstyle
  - ./gradlew clean build -x lint
  - ./gradlew :project:connectedAndroidTest

我不知道这是什么问题:S,有人对这个问题有什么线索吗?如果我删除android-wait-for-emulator继续执行但测试失败,因为模拟器尚未连接(有意义)。 想法?

1 个答案:

答案 0 :(得分:4)

我发现了问题:尝试安装platform-tools时,Travis无法移动文件夹,因为该文件夹存在并删除了文件夹内容,此文件夹为platforms-tools,其中包含adb }命令,解释了android-wait-for-emulator失败的原因。

解决方案是从组件部分删除- platform-tools- tools,因为默认情况下已提供。

修复这个问题很难,我相信这对任何人都有用。