LoginSignup
4
2

More than 5 years have passed since last update.

iOS Jenkins + fastlane + Slackでテスト実行

Posted at

どこの会社にも1人はいると言われているJenkinsおじさん。
何だつぃみはってか?
そうです。私がランチェスターのJenkinsおじさんです。
あそーれ、

えーっと、本題に戻ります。
テストコードは書いてるけどあんまり実行されていないので活かされていない。
これはモッタイナイ。それなら自動でテスト実行しよう!
使用するのは

  • Jenkins
  • fastlane
  • Slack

fastlaneの設定は?

Fastfileは以下のようにしました。

default_platform(:ios)

platform :ios do
        before_all do
                xcode_select "/Applications/Xcode 9.4.1.app"
        end

        lane :run_test do
                run_tests(workspace: "work_space_name.xcworkspace",
                        devices: ["iPhone 8"],
                        scheme: "scheme_name",
                        slack_url: "https://hooks.slack.com/services/xxxxxxxx",
                        slack_message: "メッセージ",
                        clean: true
                )
        end
end

xcode_select

Xcodeのバージョンを指定します。

run_tests

  • workspace・・・ workspace名
  • devices・・・実行したいデバイスを指定(複数指定可)
  • scheme ・・・scheme名
  • slack_url・・・slack web hook URL
  • slack_message・・・Slack通知メッセージ。
  • clean・・・trueでクリーン実行

run_testsパラメーターについて詳しくはこちらをご覧ください
fastlane docs

Jenkinsの設定は?

スケジュール

1日1回、深夜に実行させておきたいので、テスト用にジョブを作成して毎日0時に実行させます。
SCMポーリングにチェックしてスケジュールは下記を設定


H 0 * * *

実行コマンド

bundle exec fastlane run_test

テストが完了するとSlackに通知されます。

ビルド後の処理

fastlaneでテストが実行されるとreport.junitが作成されます。このファイルのパスをテスト結果XMLに設定することにより下記のテスト結果ページが表示されるようになります。

テスト結果ページ

Fastfileのslack_messageに設定しておくと便利です。

http://path/to/job/lastCompletedBuild/testReport/

最後に

だっふんだ!
ガシャーン!ポンポポンポポンポポンポポンポ

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2