Travis-CI で Android のテストを動かす

ちょっとした開発でも CI がしたい!というときに便利なのが Travis-CI です。 この Travis-CI を使って、 Android のテストを動かしてみましょう。

Android アプリのテストは大きく分けて、以下の 2 種類があります。

  • DalvikVM 上で動くテスト
    • ActivityInstrumentationTestCase2 とか
    • Robotium とか
  • JVM 上で動くテスト

DalvikVM で動くテストを実行させるためには、実機または Android エミュレータ上でテストを動かす必要があり高コストです。ですので、今回は比較的 PC 上で動作させやすい Robolectric を使ったテストを実行したいと思います。

JVM でのテスト (Robolectric)

まず、リポジトリのトップディレクトリに .travis.yml ファイルを作成し、以下のような内容にします。

language: java
before_install:
  - sudo apt-get update -qq
  - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch; fi
  - wget http://dl.google.com/android/android-sdk_r21.1-linux.tgz
  - tar -zxf android-sdk_r21.1-linux.tgz
  - export ANDROID_HOME=`pwd`/android-sdk-linux
  - export PATH=${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${PATH}
  - android update sdk --filter platform-tools,android-14 --no-ui --force

一番最後の行の android update sdk --filter platform-tools,android-14 --no-ui --force ですが、これはあなたがビルドしたい Android アプリの minSdk の値に変更してください。 (このへんよくハマった)

あとは Travis-CI にアクセスし、 Github Auth でログイン、自分がビルドしたいプロジェクトを指定します。 その後に Github 側の Service Hook で Travis CI を設定すれば完了です。

というか、これの話は全くテストに限りませんね。 apk をビルドしたいというときにも有効だと思います。

参考 URL

DalvikVM でのテストもしたい

余裕があったら以下も試してみたい。