首先大家可能会问:Travis是什么?可以帮助大家做什么?
Travis是一个免费的集成测试系统,可以帮助大家做集成测试。这个只是最浅显的回答。今天我们就一起看看如何在Android项目中运用Travis。
两个功能:
- 自动编译提交的代码,测试最新提交的代码是否可以编译通过
- 自动在模拟器安装应用,测试应用是否可以正常安装运行
首先登陆 travis
Travis 的配置文件名是 .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-19.1.0
# The SDK version used to compile your project
- android-22
# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-19
# Specify at least one system image,
# if you need to run emulator(s) during your tests
- sys-img-armeabi-v7a-android-22
- sys-img-x86-android-17
Travis的配置文件是使用 yml 一种标记语言编写的,如果有想了解的,可以自行搜索。
下面我们详细讲解上面脚本里面的元素都是代表什么意思。
- 首先设置我们的语言,现在是Android应用。
language: android
- 后面设置我们需用到Android里面相关的编译模块
android:
components:
# 使用 #来写注释
#如果需要用到tools里面相关的命令,如下添加,我认为默认添加进去就可以了
- tools
# platform-tools有两种添加方式,带版本号就是指定版本,如果不指定版本,使用最新版本的,
# 个人感觉最好使用项目里面相同的版本
- platform-tools-19.1.0
# Android sdk版本,如果项目里面有多个子项目,并且使用了多个版本的,这里可以指定
- android-22
- android-23
# google map
- addon-google_apis-google-19
# extra android support
- extra-android-m2repository
- extra-android-support
# google play service
- extra-google-google_play_services
# google addon extra
- addon-google_apis-google-19
# 或者全家桶的意思吧
- extra
# 如果你需要使用模拟器测试编译出来的安装包,你需要最少添加一个系统镜像配置
- sys-img-armeabi-v7a-android-22
- sys-img-x86-android-17
- 默认travis 会接受所有的 Licenses,但是你也可以定义自己的白名单
language: android
android:
components:
- build-tools-20.0.0
- android-L
- add-on
- extra
licenses:
- 'android-sdk-preview-license-52d11cd2'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'
- 添加模拟器
# Emulator Management: Create, Start and Wait
before_script:
# 修改你的 gradlew的权限,默认gradlew没有权限执行的
- chmod +x gradlew
- echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
- emulator -avd test -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
- 构建的时候,你肯定希望有一个干净的系统,所有需要清除缓存
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- 如果你需要多个版本的jdk
jdk:
- oraclejdk8
- oraclejdk7
- openjdk6
谢谢阅读到这里,觉得好的点个赞吧 _