Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
川口耕介
CloudBees, Inc.
AndroidをHudsonで動かす
 基本的には簡単
 Androidのビルドはantベースなので
 Hudson Android Emulatorプラグイン
 幾つかのテクニックを紹介
ステップ1
 目標
 Androidアプリのビルドを自動化する
 デジタル署名
 利点
 トレーサビリティ
デジタル署名
 「秘密」を一つのzipファイルにまとめる
$ cat key.properties
key.store.password=changeit
key.alias=mykey
key.alias.password=changeit...
デジタル署名
 秘密zipファイルをbuild secretプラグインで保存
デジタル署名
 ビルドのはじめに秘密をロード
cat $KEY/key.properties > local.properties
echo key.store=$KEY/my.keystore >> local.properties
Local.propertiesの生成
 ソースをチェックアウト後、環境依存情報を生成する
 内容
$ android update project --path . --subprojects
$ cat local.properties...
ステップ2
 目標
 テストを走らせる
 テスト結果の収集
 利点
 バグの早期発見
 プロジェクトの可視化
Hudson Android プラグイン
 ビルドに先立ってエミュレータを起動
 AVDを自動で作ることもできる
 ビルド終了時にエミュレータを終了
テスト結果の記録
 特別なテストランナーが必要
 http://bit.ly/bsntqc
 機械が読めるテストレポートを残すため
$ ls tests/libs
testutils.jar
$ cat tests/AndroidMani...
テスト結果の記録
 テストレポートを残す
 エミュレータからホストPCへコピー
$ ca tests/build.properties
test.runner=com.neenbedankt.android.test.Instrum
ent...
コードカバレッジ
 残念!
 HTMLリポートしか出力できない
ステップ3
 目標
 多環境同時テスト
 テスト結果の集計
マルチ構成プロジェクト
 一つの設定から多数の環境を同時ビルド
 パラメータで微妙に異なる環境を作り出す
 大規模なテストを素早く実行できる
 その分、計算機は多数必要
 適当に間引いたり、サブセットをビルドしたりもできる
 And...
まとめ
 Hudson + Android
 リリースの自動化
 テストの自動化
 多数の異なる環境でのテストの並列実行
HudsonとAndroid
HudsonとAndroid
HudsonとAndroid
HudsonとAndroid
Upcoming SlideShare
Loading in …5
×

HudsonとAndroid

5,222 views

Published on

アンドロイド研究会テスト部での発表。2010/11/11

Published in: Education, Technology, Business
  • Be the first to comment

HudsonとAndroid

  1. 1. 川口耕介 CloudBees, Inc.
  2. 2. AndroidをHudsonで動かす  基本的には簡単  Androidのビルドはantベースなので  Hudson Android Emulatorプラグイン  幾つかのテクニックを紹介
  3. 3. ステップ1  目標  Androidアプリのビルドを自動化する  デジタル署名  利点  トレーサビリティ
  4. 4. デジタル署名  「秘密」を一つのzipファイルにまとめる $ cat key.properties key.store.password=changeit key.alias=mykey key.alias.password=changeit $ zip secret.zip key.properties my.keystore
  5. 5. デジタル署名  秘密zipファイルをbuild secretプラグインで保存
  6. 6. デジタル署名  ビルドのはじめに秘密をロード cat $KEY/key.properties > local.properties echo key.store=$KEY/my.keystore >> local.properties
  7. 7. Local.propertiesの生成  ソースをチェックアウト後、環境依存情報を生成する  内容 $ android update project --path . --subprojects $ cat local.properties … sdk.dir=/usr/local/android-sdk-linux_x86
  8. 8. ステップ2  目標  テストを走らせる  テスト結果の収集  利点  バグの早期発見  プロジェクトの可視化
  9. 9. Hudson Android プラグイン  ビルドに先立ってエミュレータを起動  AVDを自動で作ることもできる  ビルド終了時にエミュレータを終了
  10. 10. テスト結果の記録  特別なテストランナーが必要  http://bit.ly/bsntqc  機械が読めるテストレポートを残すため $ ls tests/libs testutils.jar $ cat tests/AndroidManifest.xml … <instrumentation android:name="com.neenbedankt.android.test.InstrumentationTestRunner">
  11. 11. テスト結果の記録  テストレポートを残す  エミュレータからホストPCへコピー $ ca tests/build.properties test.runner=com.neenbedankt.android.test.Instrum entationTestRunner adb -s $ANDROID_AVD_DEVICE pull /data/data/com.foobar.app/files/TEST-all.xml
  12. 12. コードカバレッジ  残念!  HTMLリポートしか出力できない
  13. 13. ステップ3  目標  多環境同時テスト  テスト結果の集計
  14. 14. マルチ構成プロジェクト  一つの設定から多数の環境を同時ビルド  パラメータで微妙に異なる環境を作り出す  大規模なテストを素早く実行できる  その分、計算機は多数必要  適当に間引いたり、サブセットをビルドしたりもできる  Android以外でも色々使える
  15. 15. まとめ  Hudson + Android  リリースの自動化  テストの自動化  多数の異なる環境でのテストの並列実行

×