【Xcode/Fastlane】テストの自動化方法!run_testsアクションの使い方

この記事からわかること

  • iOS/Xcode自動化ツールFastlane使い方
  • テストを自動化する方法
  • run_testsアクションとは?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Xcode/iOSアプリでFastlaneを使用してテストを自動化する方法をまとめていきます。導入やセットアップの方法は以下の記事を参考にしてください。

Fastlaneでテストを実行する方法

公式リファレンス:fastlaneを使用してiOSテストを実行する

Fastlaneを使用してテストを実行するためにはXcodeのプロジェクトにテストを導入している必要があります。プロジェクト作成時に「Include Tests」にチェックを入れておけばOKです。

【Swift/Xcode】XCTestの使い方!Unit Test(単体テスト)を作ろう

必要なテストの実装方法などを上記の記事を参考にしてテストを用意しておいてください。

Fastfileファイルを編集

Fastlaneでテストを実行するには「Fastfile」ファイルを編集します。最初に自動生成されたものは以下のようになっています。


default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :custom_lane do
    # add actions here: https://docs.fastlane.tools/actions
  end
end

ここに新しくテスト用のレーンを追加します。元々あったcustom_laneを消してtestsレーンを追加しました。descレーンの説明を記述するブロックです。


default_platform(:ios)
  
platform :ios do
  desc "テスト"
  lane :tests do
    run_tests(scheme: "プロジェクト名")
  end
end

FastlaneでユニットテストまたはUIテストを実行するにはrun_testsアクションを使用します。パラメータには様々なオプションや設定値を渡すことができるようになっていますが、単に動作させたいだけであればschemeにプロジェクト名を渡せばOKです。

テストの実行

テスト(レーン)を実行するためにはfastlane レーン名を実行します。bundlerを使用している場合はbundle execの後にfastlane レーン名を付与したコマンドになります。

$ bundle exec fastlane tests

実行するといろいろなログが出力され、最後に以下のように結果が表示されます。成功した場合は以下のようになりました。

[23:43:47]: ▸ Test Succeeded
+----------------------------------------+
|              Test Results              |
+--------------------+-------------------+
| Number of tests    | 5 (and 3 retries) |
| Number of failures | 0                 |
+--------------------+-------------------+


+---------------------------------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 2    | run_tests        | 213         |
+------+------------------+-------------+

[23:43:54]: fastlane.tools finished successfully 🎉

run_testsのパラメータの種類

run_testsアクションにはいろいろなパラメータを指定できます。テスト実行するデバイスを選択したり、クリーンビルドの実行やテストレポートの出力先を変更することなどが可能になっています。

run_tests(
  project: "FastlaneTest.xcodeproj",    # プロジェクトファイル
  scheme: "FastlaneTest",               # テスト対象のスキーム名
  devices: ["iPhone SE (2nd generation)", "iPhone 11 Pro"],  # テスト実行するデバイス(シミュレーター)
  configuration: "Debug",               # ビルド構成
  clean: true,                          # テスト実行前にクリーンビルド
  skip_build: false,                    # ビルドのスキップ(falseでビルドを実行)
  output_directory: "./fastlane/test_output",  # テストレポートの出力先ディレクトリ
  output_types: "html,junit",           # 出力するレポートの形式
  result_bundle: true,                  # テスト結果をバンドル形式で出力
  fail_build: true                      # テストに失敗した場合にビルドを失敗として扱う
)

パラメータの種類は公式リファレンスを参照してください。

公式リファレンス:run_testsのパラメータの種類

Cocoa Podsを使用していて.xcodeprojではなく.xcworkspaceを使用している場合はworkspaceパラメータを指定します。

run_tests(
  pworkspace: "FastlaneTest.xcworkspace",
  scheme: "FastlaneTest",
)

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index