Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

【fastlane】テストを実行して結果をSlackに投稿する

 

はじめに

【fastlane】導入手順の説明 ※公式ドキュメントの手順でわからない箇所がある方向け - Swift・iOSの続きです。Running Tests - fastlane docsに沿って、テストの実行と結果をSlackに投稿する方法を説明します。

 

環境

macOS Catalina 10.15.7

Xcode 12.0.1

bash 3.2.57

・bundler 2.1.4

・fastlane 2.167.0

Visual Studio Code 1.50.1

 

手順

テストを実行

Fastfileを編集

プロジェクトファイルがある階層に移動して、"fastlane"フォルダを選択。

f:id:hfoasi8fje3:20201119221903p:plain

 

"Fastfile"ファイルを開く。

f:id:hfoasi8fje3:20201119222134p:plain

 

以下がこの後変更する箇所。

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

 

変更点は以下。

・"desc"は(そのままだが)説明のために使う。今回は"lane"の説明として"test sample"に変更する。

・"custom_lane"には任意の文字列を設定できる。今回は"test"に変更する。

・"lane"の中で、"run_tests(scheme: "{プロジェクト名}")"を追加するとテストを実行できる。仮にプロジェクト名が"FastlaneTest"の場合は"run_tests(scheme: "FastlaneTest")を追加する。

・テストするデバイスを指定できるパラメータなど、テスト実行時に指定できるパラメータが用意されているので、必要なものがあれば追加する。今回はデバイスを追加。

参考:https://docs.fastlane.tools/actions/run_tests/#parameters

 

変更後は以下のようになる。

 desc "test sample"
  lane :test do
    run_tests(device: "iPhone 11 Pro",
              scheme: "FastlaneTest")
  end

 

テストを実行

ターミナルを開き、プロジェクトファイルがある階層に移動して、以下コマンドを実行するとテストが実行されます。

bundle exec fastlane test

 

テスト結果をSlackに投稿

Slack ワークスペースの作成手順は省略します。

※参考:Slack ワークスペースを作成する | Slack

 

アプリを作成

Slack API: Applications | Slackの右上にある"Create New App"を選択。

f:id:hfoasi8fje3:20201120142352p:plain

 

"App Name"にはアプリを表す任意の文字列を入力、"Development Slack Workspace"には通知を投稿したいワークスペースを選択。

f:id:hfoasi8fje3:20201120142603p:plain

 

"Webhook URL"を発行

作成したアプリを選択。

※"Your Apps"の画面には、添付画像右上の"Your Apps"から遷移できます。

f:id:hfoasi8fje3:20201120143416p:plain

 

"Incoming Webhooks"を選択。

f:id:hfoasi8fje3:20201120143729p:plain

 

"Activate Incoming Webhooks"を"On"にする。

f:id:hfoasi8fje3:20201120143938p:plain

 

画面下にある"Add New Webhook to Workspace"を選択。

f:id:hfoasi8fje3:20201120144355p:plain

 

通知を投稿するチャンネルを選択して、「許可する」を選択。

f:id:hfoasi8fje3:20201120144614p:plain

 

"Webhook URL"が発行される。"Copy"を選択。

f:id:hfoasi8fje3:20201120144153p:plain

 

"Fastfile"を編集

"Fastfile"を開く。以下のように"slack_url"を追加して上書き保存。

  desc "test sample"
  lane :test do
    run_tests(device: "iPhone 11 Pro",
              scheme: "FastlaneTest",
              slack_url: "{CopyしたWebhook URL}")
  end

 

テストを実行

ターミナルで以下コマンドを実行すると、テストが実行後に結果がSlackに投稿される。

bundle exec fastlane test 

f:id:hfoasi8fje3:20201120150027p:plain

 

おわりに

テストの実行方法に関しては公式ドキュメントで十分わかりやすいので、fastlaneというよりもSlackのWebhookに関する記事になってしまいました・・・。

 

参考

Running Tests - fastlane docs

https://docs.fastlane.tools/actions/run_tests/#parameters

Slack ワークスペースを作成する | Slack

Slack での Incoming Webhook の利用 | Slack