CircleCIからMagicPodのテストを実行するには、magicpod-api-clientを使い、以下の手順でクラウド端末または外部クラウドサービス端末を使ってテストを実行するのが簡単です。
※magicpod-api-clientのダウンロード方法はこちらを参照してください。
(クラウドを使用せずにCircleCIのマシン上のシミュレータやエミュレータを使ってテストを行う場合は、モバイルアプリテストの場合はローカルPCでのテスト一括実行の設定を、ブラウザテストの場合はローカルPCを使ったコマンドライン一括テスト実行を参考にしてください。)
run_magicpod_test.shを作成
まずは、magicpod-api-clientを使ってテストを実行するrun_magicpod_test.shを作成します。
モバイルアプリテストの場合は、以下のように作成してください。 (リリースブランチのライフサイクル管理を Zapier で自動化するを参考にしました)。
#!/bin/bash -e
# (-eで、コマンドがエラーになった行で処理を終了させる)
# magicpod-apiクライアントを現在のディレクトリにダウンロード・解凍
RELEASE_VERSION=0.99.3.1 # 利用するmagicpod-api-clientのバージョン
OS=linux # macマシン上でのビルドの場合はmacを指定
curl -L -O https://github.com/Magic-Pod/magicpod-api-client/releases/download/${RELEASE_VERSION}/${OS}64_magicpod-api-client.zip
unzip -fq ${OS}64_magicpod-api-client.zip
# MagicPodで使う各種環境変数を設定。
# セキュリティのため、MAGICPOD_API_TOKENはCircleCIの環境変数で設定
export MAGICPOD_ORGANIZATION=MagicPod組織名
export MAGICPOD_PROJECT=MagicPodプロジェクト名
# app/ipa/apkファイルをMagicPodにアップロードして、FILE_NOを取得
FILE_NO=$(./magicpod-api-client upload-app -a アプリファイルへのパス)
# 先ほどアップロードしたアプリと、設定番号の設定を使ってテスト一括実行
./magicpod-api-client batch-run -S 設定番号 -s "{\"app_file_number\":\"${FILE_NO}\"}"
# テストが成功した場合はアップロードしたアプリは削除(任意)
if [ $? = 0 ]; then
./magicpod-api-client delete-app -a ${FILE_NO}
fi
- magicpod-api-clientをテストのたびにダウンロードしていますが、こちらから、あらかじめ最新のmagicpod-api-clientを取得し、CircleCIのビルドが利用するGitレポジトリに追加しておく方法もあります。
- CircleCIのプロジェクト環境設定などで、環境変数MAGICPOD_API_TOKENを定義しておきます。トークンの値は、MagicPodにログイン後こちらのページから取得できます。
- テスト一括実行時の「設定番号」は、「テスト一括実行」ページで設定を作成した上で、その番号を指定します(図1)。また、アップロードされたアプリファイルを使ってテストを実行するため、「アプリ種別」は「クラウドアップロード」にします(図1)。

ブラウザテストの場合は、アプリのアップロードは不要のため、以下のように作成してください。
#!/bin/bash -e
# (-eで、コマンドがエラーになった行で処理を終了させる)
# magicpod-apiクライアントを現在のディレクトリにダウンロード・解凍
RELEASE_VERSION=0.65.0.1 # 利用するmagicpod-api-clientのバージョン
OS=linux # macマシン上でのビルドの場合はmacを指定
curl -L -O https://github.com/Magic-Pod/magicpod-api-client/releases/download/${RELEASE_VERSION}/${OS}64_magicpod-api-client.zip
unzip -fq ${OS}64_magicpod-api-client.zip
# MagicPodで使う各種環境変数を設定。
# セキュリティのため、MAGICPOD_API_TOKENはCircleCIの環境変数で設定
export MAGICPOD_ORGANIZATION=MagicPod組織名
export MAGICPOD_PROJECT=MagicPodプロジェクト名
# 設定番号の設定を使ってテスト一括実行
./magicpod-api-client batch-run -S 設定番号
CircleCI設定ファイルの編集
続いて、run_magicpod_test.shを実行するCircleCIのジョブを追加します。ジョブ設定は以下のようになります。
magic-pod-e2e-test:
steps:
# checkoutやアプリのビルドなど、必要な処理を実施
# ... 中略 ....
- run:
name: MagicPod E2Eテスト
command: bash run_magicpod_test.sh