update.今年の2月にgoogleがiOS用自動UIフレームワークEaryGreyを公開してからおよそ10ヶ月が経ちました。EarlGreyは今現在も成長途中であるOSSではありますが、つい先日バージョン1.6.0がリリースされ、従来と比べて断然に導入が簡単になりました。具体的には、以前のバージョンでは手動で各種Xcodeプロジェクト設定を行う必要があったのに対し、現在のバージョンでは各種ツールにより半自動で導入できるように改善されています。3にも正式対応1しました。今回は、この最新版のEarlGreyの導入方法と簡単なUI自動テストの書き方について紹介したいと思います。10.2事前準備テストターゲットの追加とSchemeの設定EarlGreyはUnitTestsターゲットを対象としてUI自動テストを実行します(UITestsターゲットではない点に注意)。Bundle」を選択してユニットテストターゲットを追加しておきます。Tests」にチェックを入れることで実現しても良いです)。以下、EarlGreySwiftSampleAppがアプリターゲット、EarlGreySwiftSampleAppTestsがユニットテストターゲットとして話を進めます。gemと後で述べるCarthageを組みわせて使用することにより、半自動的にXcodeに導入できるようになっています。gemをインストールしておきます。gemのコマンドを使って導入します。はじめにCarthageを実行します。ios対象テストコードがObjective-Cベースである場合、ここまででEarlGreyの導入は完了です。対象テストコードがSwiftベースである場合は、さらに以下を実行します。--swift_version=3.0「target」オプションには対象となるユニットテストターゲット、「swift_version」オプションには使用するSwiftのバージョンを指定します。2.3を使用する際は2.3を指定します。EarlGreyは基本部分がObjective-Cで構成されており、このgemコマンドを実行することによりSwiftで必要となるラッパー用のファイルEarlGrey.swiftが追加されます。テスト対象アプリの作成ここでは、0以上の整数が入力されることを期待したageというTextField、およびそのことを確認するためのconfirmAgeというUIButtonを持ったサンプルアプリを対象とします。※以下、EarlGreyの使い方を簡単に理解してもらうために、UI的に微妙だったり、冗長なコードだったりしていますが、ご容赦ください:-)アプリターゲットEarlGreySwiftSampleAppのViewController.swiftにコードを追加します。コード中(1)でコメントしているように、後のEarlGreyテストコードでUIを特定するためにaccessibilityIdentifierを指定する必要があります。Inspectorから設定してもOKです。}}テストコードの追加ユニットテストターゲットEarlGreySwiftSampleAppTestsのEarlGreySwiftSampleAppTests.swiftにコードを追加します。grey_accessibilityIDによってaccessibilityIdentifierを指定していることに注目して下さい。Uにより、テストを実行します。上記コードの通り、入力フィールドに対して、文字列、負の整数、正の整数を順番にテストしてUI自動テストが実行される様子を確認できると思います。最後にいかがでしたでしょうか?もしかしたら、テストするためにそれなりに事前準備必要じゃねーか?と思っている方もいらっしゃるかもしれません!?...が、以前は様々なXcode設定を手動を行う必要がありました。そんなことはどういでもいいくらい、十分な価値があるフレームワークだと私は思っています。気になる点があれば積極的にぜひコントリビュートしていきましょう😉なお、もちろん、EarlGreyだけで全てのUIテストがカバーできるわけではありません。2っぽい表記をひきずったまま)でした。