連載
» 2014年05月23日 18時00分 公開

iOSアプリ開発でもCI/継続的デリバリしようぜ(3):Jenkinsでビルド・テスト・カバレッジ出力・コード静的解析を自動化する (4/4)

[諏訪悠紀,アンダースコア]
前のページへ 1|2|3|4       
  • 【3】テストの実行

 次に、テストを実行する処理を追加しましょう。「ビルド手順の追加」から「シェルスクリプトの実行」を選択し、以下のコマンドを入力してください。これらのコマンドでは、iOSシミュレーターで実行できるテスト用のビルドと、テストの実施を行っています。

$ xcodebuild \
-target "KiwiSample" \
-sdk iphonesimulator \
-configuration Debug build CONFIGURATION_BUILD_DIR=$WORKSPACE/build !
$ xcodebuild test \
-scheme "KiwiSample" \
-sdk iphonesimulator \
-workspace 'KiwiSample.xcworkspace' \
-configuration Debug \
-destination "platform=iOS Simulator,name=iPhone Retina (4-inch),OS=7.1"

 テスト用のコマンドでは、コマンドライン引数に-workspaceにワークスペースのファイル名を指定しています。またDebugビルドを対象としたいので、-configrationにDebugを指定しています。-destinationはテストを実行するiOSシミュレーターの指定です。nameにはXcodeで表示されるiOSシミュレーターの名称を正確に入力する必要があるので、注意してください。

  • 【4】テストのカバレッジファイルの出力

 次に、Gcovrを使ってテストのカバレッジファイルを出力する処理を追加しましょう。「ビルド手順の追加」から「シェルスクリプトの実行」を選択し、以下のコマンドを入力してください。

$ /usr/local/bin/gcovr \
$ -r $WORKSPACE \
$ --exclude '.*Tests.*' --exclude '.*ExternalFrameworks.*' \
$ -xml > build/coverage.xml
  • 【5】ソースコードの静的解析

 次に、OCLintによるソースコードの静的解析の処理を追加しましょう。「ビルド手順の追加」から「シェルスクリプトの実行」を選択し、以下のコマンドを入力してください。

$ xcodebuild clean
$ xcodebuild | tee xcodebuild.log
$ /usr/local/oclint/bin/oclint-xcodebuild
$ /usr/local/oclint/bin/oclint-json-compilation-database -- -report-type pmd -o
$ build/oclint.xml

ビルド後の処理

 ここまででビルド処理の手順の設定が終わりました。最後に、ビルド完了後にどのような処理を行うか設定しましょう。

 まず、ipaファイルの保存です。[ビルド後の処理の追加]から[成果物を保存]を選択し、「build/**/*.ipa」を設定します。これでipaファイルが「build」ディレクトリの中に生成されるようになります。

 次に、テストのカバレッジ結果の出力です。[ビルド後の処理の追加」から[Coberturaカバレッジ・レポートの集計]を選択し、「build/coverage.xml」を設定します。これでJenkinsのダッシュボードにカバレッジの結果が表示されるようになります。

 次に、OCLintの解析結果の出力です。[ビルド後の処理の追加]から[PMD警告の集計]を選択し、「build/coverage.xml」を設定します。これでJenkinsのダッシュボードにOCLintの解析結果が表示されるようになります。

図10 ビルド後の処理の設定

ジョブの実行

 これでジョブの作成が全て終わりました。手動でジョブを実行してみましょう。Jenkinsのプロジェクト画面の左メニューの[ビルド実行]をクリックしてください。Xcodeプロジェクトのビルドを数回行っているので少し時間がかかりますが、無事に完了すれば図11のように青いマークが表示されるはずです。

 何らかの理由により失敗した場合は赤いマークが表示されるので、設定またはソースコードを見直す必要があります。

図11 ビルドの実行

 また、コードカバレッジやPMD警告(OCLint)の実施結果も画面上に表示されるようになります。これらの解析結果は、iOSアプリの品質を高めるための重要な手掛かりとなるはずです。ぜひ活用していきましょう。

いつでもアプリを実行できるようにしよう

 今回は、Homebrewを使ったJenkinsのインストールと、iOSアプリのビルド/テストの自動化に必要なプラグインのインストール、そしてジョブを作成する手順について解説しました。

 iOSアプリのビルド/テストを実行するジョブを一から作り上げるのは少し時間がかかりますが、一度作成しておけば、複製して使い回せるので、2回目以降のジョブの作成スピードは非常に速くなります

 Jenkinsを活用し、リポジトリへのPush時にビルドやテストを実施したり、デイリービルドを作成したりしておくと、いざというときに自信を持って安心してリリース(または納品)できるようになります。現在進めているプロジェクトでまだ導入していないのであれば、ぜひ導入してみてください。

著者プロフィール

諏訪悠紀

アンダースコア株式会社でiOS/Androidのアプリの開発に携わっています。


ブログGoogle Play StoreiTunes App Store


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。