HudsonでAndroidする
手順
- hudson側
- hudsonのインストール
- hudsonを起動
- hudsonプロジェクトを作成
- jobの追加
- ターゲットプロジェクト
- テストプロジェクト
- hudsonからビルド
- hudsonでテスト
hudsonのインストール
http://hudson-ci.org/
からhudson.warをダウンロードして適当なところに配置
Androidプロジェクトをコマンドラインから作成
hudson上でBuildするのにantコマンドを使います。
EclipseではなくコマンドラインからAndroidプロジェクトを作成すると、build.xmlが作成されます
コマンド
android create project \ --target AndroidAPILv \ --name プロジェクト名 \ --path プロジェクトパス \ --activity アクティビティ名 \ --package パッケージ
例
android create project \ --target 4 \ --name HelloHudson \ --path /home/ore/develop/gengo/android/src/HelloHudson \ --activity HelloHudson \ --package com.example.hellohudson
gitの設定
$ git init
-
- .gitignoreの作成
-
- gitignoreをaddしてコミット
$ git add .gitignore $ git commit -m"add gitignore"
-
- プロジェクトをコミット
$ git add -A . $ git commit -m"firstcommit"
$ git --bare init --shared
$ git remote add origin [path]
-
- リモートにpush
$ push origin master
Hudsonの設定
- Hudsonを起動する
- 起動コマンド
java -jar hudson.war
-
- ブラウザ起動
- URL:localhost:8080
- ブラウザ起動
- pluginのインストール
- メニューから"Hudsonの管理"を選択
-
- "プラグインの管理"を選択
- 入れたいpluginを選択して、画面の壱番下の"インストール"ボタンを選択する
-
- pluginがインストールされる
-
- 完了したらHudsonを再起動する
- Pluginがインストールされていることを確認
- 新規ジョブの作成
- メニューから"新規ジョブの作成"を選択
- ジョブ名:HelloHudson
- フリースタイル・プロジェクトのビルドにチェック
- "ok"をクリック
- メニューから"新規ジョブの作成"を選択
-
- ジョブが作成されているのを確認
Hudsonでビルドする
- "ビルド実行"を選択
- ビルドが実行される
- ビルドが成功したことを確認する
- 左下のビルド履歴に実行結果が表示される
- 成功は 青
- 失敗は 赤
- 中断は 灰
- 左下のビルド履歴に実行結果が表示される
- ビルド結果を確認
- ビルド履歴から"#1"を選択
- 画面が変わったら、サイドメニューの"コンソール出力"を選択する
AndroidのTestプロジェクト作成
- テストプロジェクト作成コマンド
android create test-project \ -m [Testをしたいプロジェクトのパス] \ -n [TestProject name] \ -p [TestProject Path]
- 例
android create test-project \ -m /home/ore/develop/gengo/android/src/HelloHudson \ -n HelloHudsonTest \ -p /home/ore/develop/gengo/android/src/HelloHudsonTestore
Eclipseにプロジェクトを追加
HelloHudsonプロジェクトをEclipseに追加する
- Eclipseの起動
- Androidプロジェクトの新規作成ウィザードを開く
- "New Androi Project"ウィンドウで"Create project from existing source"にチェック
- "Browse"ボタンをクリックしてHelloHudsonプロジェクトのディレクトリを選択
- 必須項目が自動的に設定されているのを確認
- "Finish"ボタンをクリック
HelloHudsonTestプロジェクトをEclipseに追加する
- 上の手順まで実行する
- Testプロジェクトにターゲットプロジェクトを追加する
- プロジェクト右クリック
- Build Path → Configration Build Path
- Projectsタブを選択して"Add..."ボタンをクリック
- "HelloHudson"にチェックをいれて"OK"ボタンをクリック
- ProjectsタブにHelloHudsonがついかされているのを確認し"OK"をクリックして設定画面を閉じる
eclipse上で実行する
まずはターゲットプロジェクトをEclipseで実行します
実行すると下記のようなメッセージが表示される
ターゲットAPIのエミュレータがないよと言ってます。
これは"default.properties"に
target=Google Inc.:Google APIs:4
が記述されているからです。
で、自分の環境は1.6はあるけどGoogleAPIではないからです。
コマンドラインからプロジェクトを作成した場合はターゲット4を指定するとGoogleAPIが選択されるようです。
解決するにはAVD追加するかtargetを変更します
以下を記述
target=4
同様にTestプロジェクトの"default.properties"も変更しておく
再度Runして普通に実行できることを確認する。
Testプロジェクトを動かす
- テストケースの作成
ターゲットプロジェクトに適当なメソッドを追加
public void show(){ Log.v("HelloHudson", "HelloHudson!"); }
- Testプロジェクトにshowテストメソッドを追加
public void testShow(){ getActivity().show(); }
コマンドラインでTestを実行する
以下のコマンドを実行
$ adb shell am instrument -w com.example.hellohudson.tests/android.test.InstrumentationTestRunner
実行結果
com.example.hellohudson.HelloHudsonTest:. Test results for InstrumentationTestRunner=. Time: 0.96 OK (1 test)
Hudsonにジョブを追加
HelloHudsonと同じようにジョブを追加する
変更点
- ビルド手順
- シェルの実行
ant
adb shell am instrument -w com.example.hellohudson.tests/android.test.InstrumentationTestRunne
課題
今回のテスト実行が成功したのはエミュレータがすでに起動しているからです。
エミュレータが起動していないと当然エラーです。
本来のシェル実行コマンドは以下のようにすべきです
emulator -avd [エミュレータ名] ant adb shell am instrument -w com.example.hellohudson.tests/android.test.InstrumentationTestRunne
でも、この場合、エミュレータが起動しても次のコマンドが実行されません。
だからといっても
emulator -avd [エミュレータ名] & ant adb shell am instrument -w com.example.hellohudson.tests/android.test.InstrumentationTestRunne
こうしたら、エミュレータの起動が完了する前にテストが走ります。
どうすればいいんだろう???