fastlane/snapshotで複数パターンのスクリーンショットを撮る方法
前回はfastlane/snapshotのご紹介をしました。
今回は複数パターンでスクリーンショットを撮り分ける方法をご紹介します。
Snapfileを見るとわかるのですが、fastlane/snapshotはShemeを指定して実行できます。 この仕組みを利用して、Xcodeで複数Schemeを作成しSchemeごとにテストを分けることで、スクリーンショットの複数パターン撮り分けを実現します。
それでは早速やってみましょう!
テストを追加作成する
まずはテストの追加です。テストメソッドの命名規則に従い、「test」で始まるメソッド(testExample2)を追加し、スクリーンショットを撮りたい画面を変えましょう。例では単純に初期画面のスクリーンショットを撮る命令のみ記述しました。
- (void)testExample { XCUIApplication *app = [[XCUIApplication alloc] init]; //Tap Navifation Rght (+) Button [[app.navigationBars[@"Master"].buttons elementBoundByIndex:2] tap]; sleep(1); [Snapshot snapshot:@"master" waitForLoadingIndicator:YES]; [[app.tables.cells elementBoundByIndex:0] tap]; sleep(1); [Snapshot snapshot:@"detail" waitForLoadingIndicator:YES]; } - (void)testExample2 { sleep(1); [Snapshot snapshot:@"master" waitForLoadingIndicator:YES]; }
Shemeを追加する
- Xcodeのメニューから「Product」-> 「Scheme」-> 「New Scheme」と選択します。
- TargetはsnapshotのUIテストのターゲットを選択し、Nameを識別できるよう設定します。
Schemeの設定を行う
- 作成したSchemeの編集画面に移動します(Xcodeのメニューから「Product」-> 「Scheme」-> 「Edit Scheme」)
- 左ペインの「Run」を選択し、「Info」の「Executable」に起動できるappを設定します。
- 左ペインの「Test」を選択し、「Info」の「Tests」を展開し、実行したいテストメソッド以外のチェックを外しCloseします。
fastlane/snapshotをSchemeを指定して起動
ターミナルを開き、プロジェクト直下まで移動しSchemeを指定してsnapshotを実行します。
$ snapshot -s HSASnapshotUITests2
あとは待つだけ!指定したテストのみ実行されるので、スクリーンショットの撮り分けができました〜
ちなみに存在しないSchemeを指定して起動すると親切にもScheme選択画面になるあたりがニクイ。
$ snapshot -s Hogehoge
それではまた〜(次回こそdeliver)