Help us understand the problem. What is going on with this article?

【Swift】UI自動化テストフレームワークEarlGreyを使ってみた

この記事は、TECOTEC Advent Calendar 2019 の4日目の記事です。

開発環境:Xcode:10.2.1
開発言語:swift4.0

UI自動化テストフレームワークEarlGreyとは

Googleが作ったネイティブiOS用のUI自動化テストフレームワークです。
Google公式のGitHub
XCTestを拡張してありXcodeまたはコマンドラインにて実行が可能。

EarlGreyを選んだ理由

Androidと一緒に開発することが多いので、
Espressoと(たぶん)対になってるEarlGreyを使ってみようと思った。
あとはただの好奇心!

いざ導入!

しようと思ったら、まず記事が少ない!
2016年とかの記事ばっかりでそもそも情報少なくて心が折れかけながら
公式のInstall and runを見ながらとりあえず入れてみる。

そして案の定詰まった。。。

【原因】
流し読みしてたせいでstep2のAdd EarlGrey as a framework dependencyという部分を、実行し損ね2時間ぐらい無駄にしながらなんとか無事に導入完了。

UITest書いてみる

Googleが用意してくれたチートシートとにらめっこしながらそれっぽいものを探して、
ボタンを押して表示されるテキストが正しいかチェックするテスト書いてみた。

sample.swift
import XCTest
import EarlGrey

@testable import test

class testTests: XCTestCase {

    func testExample() {
        // ボタンをタップする
        EarlGrey().selectElementWithMatcher(grey_accessibilityID("testButton")).performAction(grey_tap())
        // TESTというテキストが表示されていることを確認する
        EarlGrey().selectElementWithMatcher(grey_text("TEST")).assertWithMatcher(grey_sufficientlyVisible())
    }
}    

とりあえず問題なく動いた。

2、3日遊んでみての感

・EarlGreyはシステムアラートのテストができない。(結構致命的)
・別にandroidに合わせてフレームワーク使う意味もない気がしてきた
・XcodeのXCUITestの方が記事がたくさん出てくる(当たり前)
・実はEarlGrey2がある。。。

【ちょっとだけEarlGrey2について】
EarlGreyの時にはテストできなかったアラートなどもテストできる用になっているので、今から触るなら断然EarlGrey2がオススメしたいが・・・
まだベータ版なので、試しに使うのはいいが本番稼働に使うのは微妙。
結構Issuesもあるし、毎日のようにコミットが走っているのでなんとも言えない。。。
そして案の定記事はほぼないのでそこがネック。
ただgoogleなので公式サンプルはそこそこある(全てが最新とは言わない)。

個人の感想ですが、XCUITestでいいかなーと思いました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした