Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

継続的インテグレーション(CI)システムでテストを開始する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

継続的インテグレーション (CI) システムを使用してアプリを開発する場合は、Firebase Test Lab を使用できます。継続的インテグレーション システムを使用すると、アプリのソース コードの更新をチェックインするたびに、アプリを自動的にビルドしてテストできます。

Jenkins CI で Firebase Test Lab を使用する

このセクションでは、 Jenkins CIで Test Lab を使用する方法について説明します。

要件

Jenkins で Firebase Test Lab を使用する前に、次の手順を完了する必要があります。

  1. gcloud をセットアップします。 gcloud コマンドラインから Firebase Test Lab を使用するの手順に従って、Firebase プロジェクトを作成し、ローカルの Google Cloud SDK 環境を構成します。

  2. サービス アカウントを作成して承認します。サービス アカウントは、CI ビルドをブロックする可能性があるスパム チェックやキャプチャ プロンプトの対象ではありません。 Google Cloud Console編集者の役割を持つサービス アカウントを作成し、アクティブ化します (方法については、 gcloud auth activate-service-account のドキュメントを参照してください)。

  3. 必要な API を有効にします。サービス アカウントを使用してログインした後: Google Developers Console API ライブラリ ページで、 Google Cloud Testing APICloud Tool Results APIを有効にします。これらの API を有効にするには、コンソールの上部にある検索ボックスにこれらの API 名を入力し、その API の概要ページで [ APIを有効にする] をクリックします。

Jenkins のインストールとセットアップ

Linux または Windows に Jenkins CI をインストールしてセットアップできます。このガイドの特定の詳細は、ファイル パスでのスラッシュ ( / ) の使用を含め、Linux での Jenkins CI のインストールと実行に固有のものです。

Linux または Windows を実行しているコンピューターに Jenkins をダウンロードしてインストールするには、 Jenkins のインストールの手順に従ってください。 Jenkins をインストールしたら、「Jenkins の起動とアクセス」の手順に従ってセットアップを完了し、Jenkins ダッシュボードにアクセスします。

グローバル セキュリティ設定の構成

Jenkins には、最初のインストール時にユーザー認証とアクセス制御が構成されていません。 Firebase Test Lab で Jenkins を使用する前に、グローバル セキュリティ設定を構成して、アクセス制御を適用し、ユーザーを認証します。

グローバル セキュリティ設定を構成するには

  1. サーバーの Jenkins ダッシュボードに移動します。これを行うには、 http://<servername>:8080を参照します。ここで<servername>は、Jenkins をインストールしたコンピューターの名前です。
  2. Jenkins ダッシュボードで、[ Manage Jenkins ] をクリックし、[ Configure Global Security ] をクリックします。
  3. [グローバル セキュリティの構成] ページで、[セキュリティを有効にする] をクリックし、[保存] をクリックします。

Jenkins のセキュリティ設定の構成の詳細については、 Quick and Simple SecurityStandard Security Setup 、およびSecuring Jenkinsを参照してください。

ジェンキンス プロジェクトを作成する

次に、Firebase Test Lab でアプリの継続的統合テストを実行するためのプロジェクトを作成します。

Jenkins プロジェクトを作成するには

  1. サーバーの Jenkins ダッシュボードに移動します。これを行うには、 http://<servername>:8080を参照します。ここで<servername>は、Jenkins をインストールしたコンピューターの名前です。
  2. Jenkins ダッシュボードで、 New Itemをクリックします。
  3. [アイテム名] フィールドにプロジェクトの名前を入力します。
    • Freestyle プロジェクトを選択して、単一のビルド構成を使用するプロジェクトを作成します。
    • [マルチ構成プロジェクトのビルド] を選択して、複数の異なるビルド構成で実行されるプロジェクトを作成します。さまざまなビルド構成 (複数のロケール、複数の Android API レベルなど) でアプリをビルドする予定がある場合は、マルチ構成プロジェクトが最適です。
  4. [保存]をクリックします。

プロジェクトが作成されると、Web ブラウザにプロジェクトのメイン ページが表示されます。

リビジョン管理と Gradle ビルド手順を追加する

このセクションでは、Jenkins を GitHub などのリビジョン管理システムと統合する方法と、Gradle ビルド ステップを追加してソース コードから APK パッケージをビルドする方法について説明します。

GitHub およびその他のリビジョン管理システムとの統合

GitHub または別のリビジョン管理システムを使用してアプリのソース コードを管理する場合、Jenkins を構成して、自動ビルドを実行し、アプリの更新がチェックインされるたびにテストを実行することができます。ビルドを定期的に実行するように Jenkins を構成することもできます。

Jenkins でビルドを構成する方法については、「自動ビルドの構成」を参照してください。

APK パッケージを再構築するための Gradle ビルド手順の追加

リビジョン コントロール システムを使用してアプリのソース コードを管理する場合、Jenkins がリビジョン コントロール システムからソース コードをダウンロードするたびに新しい APK バイナリを作成する Gradle ビルド ステップを含める必要があります。

  1. アプリケーションのメイン ディレクトリで次のコマンドを実行するビルド ステップを追加します:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. Test Lab でのテスト時に、Gradle によって作成された APK パッケージを使用するビルド ステップを追加します。以下に示すシェル スクリプトの例では、このパスを<local_server_path>として使用できます。ここで、 <AppFolder>はアプリの Android Studio プロジェクト フォルダーです:

    <AppFolder>/app/build/outputs/apk
    

Test Lab のビルド手順を Jenkins に追加する

これで、ビルドステップを Jenkins に追加して、gcloud コマンドラインを使用して Test Lab を実行する準備が整いました。

gcloud ビルドステップを追加するには

  1. プロジェクトのメイン ページから、[構成] をクリックします。
  2. プロジェクト構成ページで、[ビルド] セクションまで下にスクロールし、[ビルドステップの追加] メニューから [シェルの実行] を選択します。

  3. Jenkins Execute シェル コマンドウィンドウで、サーバー上のサンプル アプリへのパスを<local_server_path>に、アプリの APK を<app_apk>に、アプリのテスト APK を<app_test_apk>に置き換えて、次のように入力します:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

テスト結果の分析

Test Lab によるアプリのテストが完了したら、Firebase コンソールまたはプロジェクトのGoogle Cloud Storageバケットでテスト結果を確認できます。上記のシェル コマンドにgsutilコマンドを追加して、テスト結果データをローカル コンピューターにコピーすることもできます。詳細については、 Firebase テスト ラボの結果の分析をご覧ください。

他の CI システムとの継続的な統合

他の CI システムで Firebase Test Lab を使用する方法については、次のドキュメントをご覧ください。