Skip to content

MobileにMaestroスモークE2Eテストを導入する #269

Description

@hirokisakabe

Status: Ready

概要

apps/mobile にMaestroによる端末E2Eテスト基盤を導入し、iOS SimulatorとAndroid Emulator上でアプリ起動・認証ガード・主要画面の最低限の動作を確認できるようにする。EAS Workflowsから明示的に実行できる構成を用意する。

背景 / モチベーション

  • 現在のJestテストはNode.js上で実行され、ネイティブアプリの起動失敗、route遷移、iOS/Android固有の問題を検出できない
  • StorybookやVRTは個々のUI状態に有効だが、アプリ全体の起動と画面遷移は別のE2Eレイヤーで確認する必要がある
  • ExpoはEAS Workflows上でMaestroを使うiOS/Android E2E構成を提供している

受け入れ条件

  • apps/mobile.maestro/ または同等のMaestro flow配置が追加されている
  • E2E用にAndroid APKとiOS Simulator buildを作成できるEAS build profileが追加されている
  • 未認証状態でアプリを起動し、ログイン画面が表示されることを検証するsmoke flowがある
  • 認証ガードを含む主要な画面遷移を少なくとも1つ検証するflowがある
  • 同じflowをiOS SimulatorとAndroid Emulatorで実行できる
  • ローカルでMaestro flowを実行する手順が開発ドキュメントに記載されている
  • EAS WorkflowsからE2Eを手動またはPR labelで明示的に起動でき、通常のPRごとに高コストなnative buildを強制しない
  • E2E失敗時にMaestroのログとスクリーンショットまたは録画をartifactとして確認できる
  • 既存のGitHub Actionsによるlint、typecheck、Jestテストが従来どおり成功する

実装方針

  • Expo公式のEAS Workflows maestro jobとE2E用build profileを利用する
  • 最初は外部データや永続的なテストアカウントへ依存しないsmoke flowに限定する
  • accessibility labelや画面上の安定した文言をselectorとして利用し、座標タップを避ける
  • EASのMaestro jobはalphaであるため、通常CIとは分離し、手動またはPR label起動を基本とする

スコープ外

  • 全機能を網羅するE2E suite
  • productionデータや実ユーザー認証情報を利用するテスト
  • Visual Regression Testingのbaseline比較
  • Storybookの導入・story作成
  • App Store公開フローの変更

参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions