日本Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるテストのノウハウを、実際のテストコード例とともに紹介していきます
本連載「Androidアプリ開発テスト入門」では、Androidアプリを開発している方のためにテストの基本的なノウハウを解説しています。第6回では、CIツールである「Jenkins」を用いてAndroidをテストする方法を解説します。
「継続的インテグレーション」(以下、CI)とは、アジャイルのベストプラクティスの1つで、「すべてが自動化された再現可能なビルド・テストを日に何度も行うこと」です。
CIのメリットには、次のものがあります。
WindowsアプリやWebアプリに比べてAndroidアプリの開発でCIが特に重要です。以下のようなAndroidの特徴により、CIの重要性がさらに高まっています。
1と2によってテストの回数は従来のプラットフォームに比べ格段に上がるだけではなく、3によってプロダクトの寿命を縮める結果になります。
想定されるワーストケースは次のようなものです。
端末の新発売・バージョンアップ
↓
動作しない端末の増加
↓
表示画面に☆1の評価が並ぶ
↓
アプリの評価の低下、ブランドイメージの低下
CIは、これらの問題を解決してくれます。
CIを実践するには、まずテストコードが必要です。このテストコードは、ほかの記事によって、すでに実現できていることにします。本連載「Androidアプリ開発テスト入門」のバックナンバーなどを参照してくだださい。
次にビルド・テストの実行はコマンドで行えますが、この「コマンドを実行する」という作業は誰かが行わないといけません。この作業を人ではなく機械に定期的に行わせる自動化を行って初めて、「継続的な」ビルド・テストが実現できます。例えば、cronやタスクスケジューラがあれば、ひとまずCIは実践できます。
では、なぜJenkinsのようなツールを使う必要があるのでしょうか? Jenkinsを利用することで、次のメリットがあります。
上記の機能をcronなどで実現するのは、大変です。またJenkinsは、Maven 2、Ant、シェルスクリプト、Windowsバッチでビルドやテストを行うプロジェクトを標準でサポートしており、多くのプロジェクトでCIが可能です。
また、プラグインなども豊富にそろっています。Androidのエミュレータもプラグインを使うことで簡単にクリーンな状態のエミュレータを自動で構築、利用できます。
JenkinsとCIについては、以下の記事も参照してください。
「Hudson」改め「Jenkins」で始めるCI入門
ユカイ、ツーカイ、カイハツ環境!(21) これから継続的インテグレーションを始める方を対象に10分程度でJenkinsを実際に動かして体験できるように使い方や特徴を解説
「Java Solution」フォーラム 2011/4/7
AndroidアプリのためのJenkinsサーバを立ててみましょう。ここでは、CentOSへのインストール方法を解説します。
JDKの1.6を利用してください。1.7を利用した場合動作しないことがあります。
yum install ncurses-devel
wget -O /etc/yum.repos.d/Jenkins.repo http://pkg.Jenkins-ci.org/redhat/Jenkins.repo rpm --import http://pkg.Jenkins-ci.org/redhat/Jenkins-ci.org.key yum install Jenkins
そのほかのOSやディストリビューションは本家サイトや日本語Wikiをご覧ください。
次に、JenkinsにAndroidエミュレータプラグインをインストールします。
プラグインのリストからAndroidエミュレータプラグインを選択すると、インストールは終了です。
次に、プロジェクトの設定を行います。ソースコードは、今回は「testter」を利用します。
プロジェクトを作成します。トップ画面の左側のメニューから[新規ジョブ作成]を選択します。
プロジェクト名を入力し[フリースタイル・プロジェクトのビルド]を選択します。
次に、SubversionからtestterとtestterTestのソースコードをチェックアウトするようプロジェクトを設定します。設定は以下のようになります。
以下は元のURLです。
Copyright © ITmedia, Inc. All Rights Reserved.