Maestroで始めるReact NativeのE2Eテスト

Maestroをインストール

shell
curl -Ls "https://get.maestro.mobile.dev" | bash

iOSデバイスに接続する準備

shell
brew tap facebook/fb
brew install facebook/fb/idb-companion

ビルドの設定

shell
eas build:configure

eas.json が作成されて、 app.json に eas > projectId が追加されます。

ビルドプロセスの設定

eas.json に development-simulator を追加します。

eas.json
{
  "cli": {
    "version": ">= 5.2.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "development-simulator": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true
      }
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {}
  },
  "submit": {
    "production": {}
  }
}

次に expo-dev-client をインストールします。

shell
npx expo install expo-dev-client

ローカルで iOS シミュレーター用のアプリをビルドします。

shell
eas build --profile development-simulator --platform ios --local

シミュレーターにアプリをインストールする

eas build で作られた tag.gz ファイルを展開します。

shell
tar -xvzf build-*.tar.gz

xcrun でシミュレーターに展開された xxx.app ファイルをインストールします。

shell
xcrun simctl install booted myapp.app 

expo dev client を実行します。

shell
npx expo start --dev-client

maestro の実行

sample.yml
appId: com.example.myapp
---

- launchApp

- tapOn: "Skia Circular Progress"
- tapOn: "Home"

実行:

shell
maestro test sample.yml

yml ファイルは maestro studio コマンドのGUI経由で作成できます。

公式サイトの見解によると、Xcode 15 だと、2023年10月現時点ではエラーが出るそうです。

https://maestro.mobile.dev/getting-started/installing-maestro/macos

ウェブの情報も少ないので、もう少し様子見が必要かもしれません。