CI(Continuous Integration)はソースコードの変更がある度に自動的にビルドとテストを実行するソフトウェアの品質管理手法の一つです。CIを効率的に行うことができるツールはCIツールと呼ばれており、主要なツールとしてGitHub ActionsやCircleCI, Bitriseなどが挙げられます。定期実行による多くのメリットがあるため、CIサービスにMagicPodの自動テストを組み込むことを推奨しています。
目次
CIサービスを使用して定期的にテストを実行するメリット
CIサービスにMagicPodの自動テストを組み込むことで、定期的にテストを実行することができます。結果として以下のメリットが得られます。
- 不具合・トラブルを迅速に検出できる
- 開発チームの生産性を上げることができる
- 手動実行の手間を削減することができる
詳しくはこちらのガイドをご覧ください。
スタートガイド:5.テスト自動化の習慣を最速で定着させる(モバイルアプリ)
スタートガイド:5.テスト自動化の習慣を最速で定着させる(ブラウザ)
各CIサービスとの連携方法
各ガイドをご確認ください。GitLabなど以下に記載のないCIサービスについても連携可能です。その場合はCircleCIとの連携「run_magicpod_test.shを作成」の手順でshファイルを作成し、各CIツールの方法に従いそのファイルをジョブに組み込んでください。
Jenkinsでテストを毎日実行する(Mac/ローカルPCテスト)
よくある質問
クラウド端末が全て使用中となっているため、一括実行テストが開始できる失敗してしまうことがある
CIサービスでテスト実行を自動化している場合、テストを実行する前に、空いているクラウド端末数を取得するスクリプトを追加することで、テストの実行開始を待機させることができます。
詳しくはこちらのヘルプページをご確認ください:クラウド端末の使用数上限に達している場合に一括実行を待機させたい
MagicPod上の定期実行とCIサービス経由実行の使い分け方を知りたい
モバイルアプリでのテストではビルドファイルをMagicPodにアップロードする必要があるため、CIサービス経由での実行が推奨されます。CIパイプラインでアプリのビルドとテスト実行を連携させることで、最新のビルドに対して自動的にテストを実行できます。ビルドファイル(.app/.apkファイルなど)をCI内で生成し、MagicPod APIを使ってアップロードとテスト実行を自動化することで、開発フローに組み込んだ効率的なテストが可能になります。
ブラウザテストではビルドファイルのアップロードが不要で、URLを指定するだけで実行できるため、MagicPodの定期実行機能を使って毎日や毎週などのスケジュールで自動実行を設定できます。ただし、デプロイと連動してテストを実行したい場合や、プルリクエストごとにテストを走らせたい場合は、CIサービス経由での実行も有効です。
モバイルアプリ・ブラウザテスト共に、開発スピード向上のために以下のようにテストのボリュームに強弱をつけることもおすすめです。
- 毎日夜間:MagicPodの定期実行機能で全フローをテストする(実行時間:長)
- デプロイ時:CIサービス経由でデプロイ前に基本的なフローをテストする(実行時間:中)
- プルリクエスト時:CIサービス経由でマージ前に最低限のフローをテストする(実行時間:短)