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で解決できそうな気もするけど)。