我有python wrapper-library for adb我有单元测试,它依赖于模拟器或真实设备(因为它们执行adb命令)。
我还希望将Travis CI用作构建环境,并为每个构建执行这些单元测试。
有没有办法在Travis CI中安装android模拟器,以便单元测试可以执行adb命令?
提前致谢!
答案 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