Jenkins + Maven で Android test project を build & test

Test project も Jenkins上で build & test できたので、忘れないうちにメモ。とはいえ、力つきそうなのでザックリと。

  • Android test projectの作成(local PC)

やりかたは色々あると思うけど、今回は

あと、どのdevice上でテストするかを指定するため以下の設定をpom.xmlに書いておいた。詳しくは上記のURL参照のこと。

<project><properties>
    <android.device>emulator</android.device>
  </properties></project>
  • Unit test作成 & 実行(local PC)

Android test project なので、src/main/java の下にテストコードを書く。

import junit.framework.TestCase;

public class ZuttomoTest extends TestCase {
  public void testZuttomoDayo() {

Eclipse上でRun -> Android Unit testを実行して上手くいくことを確認しておく。

次に、mvnコマンドからのテストが成功するかも確認。この際, 適切なAndroid emulatorが起動していること。ちなみに、mvn install でテストが実施される。

$ mvn install
  • Git摘要(local PC)

昨日のエントリと同様にtest projectをGit管理下において、commit, push originしておく。

  • AVD作成(remote server)と起動

Jenkins上でAndroid testが実行されるためには、Emulatorが起動している必要がある。その前準備。

例えばAPI level 8で、sdcard size 20M, デバイス名をG22の場合、emulatorの作成と起動は以下。

$ android create avd -c 20M -n G22 -t 8
$ emulator -no-window -avd G22

今回用いたremote serverはGUIが無いので、emulator -no-window にしています。

で、Jenkinsのテストが行われる間はemulatorを起動している必要あり。この辺は自動化したいところ。

  • JenkinsにNew Job作成してテスト(remote server via web browser)

こちらも昨日のエントリ参照のこと。

Build NowするとBuild後、Testが実施されるが、今回は "Found 0 devices connected with the Android Debug Bridge (snip) No online devices attached." と怒られ続けた。結局、emulatorが起動していなかったのが原因なので、CIの際にはEmulatorを起動しておく必要がある(どうやら pluginで解決できそうな気もするけど)。