mcpField
X
xcode-test

xcode-test

github.com/ratacatテスト・品質5841 回インストール37 週間前に更新
リポジトリ

xcode-test について

シミュレーターでiOSおよびmacOSアプリをビルドして確認する手順を示すテストスキルです。XcodeBuildMCPでアプリをインストールして起動し、スクリーンショットやログを調べ、外部フローでは人による確認を促します。

主な機能

  1. 01シミュレーターでのビルドとインストール
  2. 02アプリ起動と画面キャプチャ
  3. 03コンソールログの確認
  4. 04外部フローの人手確認
  5. 05障害の記録と再テスト

活用シーン

  1. 01アプリ変更後の主要画面の確認
  2. 02シミュレーターのクラッシュやエラーの調査
  3. 03人手が必要なサインインや購入フローの確認
  4. 04障害を記録し修正後に再ビルド

MCP 対応

接続済みのXcodeBuildMCPサーバーが必要です。プロジェクト検出、シミュレーター管理、ビルド、インストール、画面キャプチャ、ログ確認にそのツールを使うようエージェントに案内します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ratacat/claude-skills --skill xcode-test

インストール後、Claude Code で/xcode-testを入力して読み込まれたか確認します。

詳細

引数

[スキーム名、またはデフォルトを使用する場合は 'current']

Xcode テストコマンド

<command_purpose>XcodeBuildMCP を使用して、シミュレーター上で iOS アプリをビルド、インストール、テストします。スクリーンショットやログを取得し、アプリの動作を検証します。</command_purpose>

はじめに

シミュレーターを使ったテストを専門とする iOS QA エンジニア

このコマンドでは、iOS/macOS アプリを次の手順でテストします。

  • シミュレーター向けにビルドする
  • アプリをインストールして起動する
  • 主要な画面のスクリーンショットを撮影する
  • エラーを確認するためにコンソールログを取得する
  • 外部フローの人による検証に対応する

前提条件

- コマンドラインツールを含む Xcode がインストールされていること - XcodeBuildMCP サーバーが接続されていること - 有効な Xcode プロジェクトまたはワークスペースがあること - 少なくとも 1 台の iOS シミュレーターが利用可能であること

主なタスク

0. XcodeBuildMCP がインストールされていることを確認する

<check_mcp_installed>

まず、XcodeBuildMCP のツールが利用可能か確認します。

次を呼び出してみてください。

mcp__xcodebuildmcp__list_simulators({})

ツールが見つからない場合、またはエラーが発生した場合:

ユーザーに次のように伝えます。

**XcodeBuildMCP not installed**

Please install the XcodeBuildMCP server first:

\`\`\`bash
claude mcp add XcodeBuildMCP -- npx xcodebuildmcp@latest
\`\`\`

Then restart Claude Code and run `/xcode-test` again.

XcodeBuildMCP が正常に動作することを確認するまで、先に進まないでください。

</check_mcp_installed>

1. プロジェクトとスキームを確認する

<discover_project>

利用可能なプロジェクトを検索します。

mcp__xcodebuildmcp__discover_projs({})

プロジェクトのスキームを一覧表示します。

mcp__xcodebuildmcp__list_schemes({ project_path: "/path/to/Project.xcodeproj" })

引数が指定されている場合:

  • 指定されたスキーム名を使用します
  • または、デフォルト/最後に使用したスキームを使う場合は "current" を指定します

</discover_project>

2. シミュレーターを起動する

<boot_simulator>

利用可能なシミュレーターを一覧表示します。

mcp__xcodebuildmcp__list_simulators({})

優先するシミュレーターを起動します(iPhone 15 Pro を推奨)。

mcp__xcodebuildmcp__boot_simulator({ simulator_id: "[uuid]" })

シミュレーターの準備が整うまで待ちます。 インストールに進む前に、シミュレーターの状態を確認します。

</boot_simulator>

3. アプリをビルドする

<build_app>

iOS シミュレーター向けにビルドします。

mcp__xcodebuildmcp__build_ios_sim_app({
  project_path: "/path/to/Project.xcodeproj",
  scheme: "[scheme_name]"
})

ビルドに失敗した場合:

  • ビルドエラーを取得します
  • 各ビルドエラーについて P1 の todo を作成します
  • 具体的なエラーの詳細をユーザーに報告します

成功した場合:

  • インストール用にビルド済みアプリのパスを記録します
  • インストールの手順に進みます

</build_app>

4. インストールして起動する

<install_launch>

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

mcp__xcodebuildmcp__install_app_on_simulator({
  app_path: "/path/to/built/App.app",
  simulator_id: "[uuid]"
})

アプリを起動します。

mcp__xcodebuildmcp__launch_app_on_simulator({
  bundle_id: "[app.bundle.id]",
  simulator_id: "[uuid]"
})

ログの取得を開始します。

mcp__xcodebuildmcp__capture_sim_logs({
  simulator_id: "[uuid]",
  bundle_id: "[app.bundle.id]"
})

</install_launch>

5. 主要な画面をテストする

<test_screens>

アプリの主要な画面ごとに、次を行います。

スクリーンショットを撮影します。

mcp__xcodebuildmcp__take_screenshot({
  simulator_id: "[uuid]",
  filename: "screen-[name].png"
})

スクリーンショットで次の点を確認します。

  • UI 要素が正しく描画されている
  • エラーメッセージが表示されていない
  • 期待されるコンテンツが表示されている
  • レイアウトが適切である

ログにエラーがないか確認します。

mcp__xcodebuildmcp__get_sim_logs({ simulator_id: "[uuid]" })

次の項目を確認します。

  • クラッシュ
  • 例外
  • エラーレベルのログメッセージ
  • ネットワークリクエストの失敗

</test_screens>

6. 人による検証(必要な場合)

<human_verification>

テストに次の操作が含まれる場合は、人による入力を求めて一時停止します。

フローの種類依頼内容
Apple でサインイン「シミュレーターで Apple でサインインを完了してください」
プッシュ通知「テスト用プッシュ通知を送信し、表示されることを確認してください」
アプリ内購入「サンドボックスで購入を完了してください」
カメラ/写真「アクセスを許可し、カメラが動作することを確認してください」
位置情報「位置情報へのアクセスを許可し、マップが更新されることを確認してください」

AskUserQuestion を使用します。

**Human Verification Needed**

This test requires [flow type]. Please:
1. [Action to take on simulator]
2. [What to verify]

Did it work correctly?
1. Yes - continue testing
2. No - describe the issue

</human_verification>

7. 失敗に対処する

<failure_handling>

テストに失敗した場合:

  1. 失敗を記録します。

    • エラー状態のスクリーンショットを撮影する
    • コンソールログを取得する
    • 再現手順を記録する
  2. どのように進めるかをユーザーに尋ねます。

    **Test Failed: [screen/feature]**
    
    Issue: [description]
    Logs: [relevant error messages]
    
    How to proceed?
    1. Fix now - I'll help debug and fix
    2. Create todo - Add to todos/ for later
    3. Skip - Continue testing other screens
    
  3. 「今すぐ修正」の場合:

    • コードを調査して問題を特定する
    • 修正案を提示する
    • 再ビルドして再テストする
  4. 「todo を作成」の場合:

    • {id}-pending-p1-xcode-{description}.md を作成する
    • テストを続行する

</failure_handling>

8. テストの概要

<test_summary>

すべてのテストが完了したら、概要を提示します。

## 📱 Xcode Test Results

**Project:** [project name]
**Scheme:** [scheme name]
**Simulator:** [simulator name]

### Build: ✅ Success / ❌ Failed

### Screens Tested: [count]

| Screen | Status | Notes |
|--------|--------|-------|
| Launch | ✅ Pass | |
| Home | ✅ Pass | |
| Settings | ❌ Fail | Crash on tap |
| Profile | ⏭️ Skip | Requires login |

### Console Errors: [count]
- [List any errors found]

### Human Verifications: [count]
- Sign in with Apple: ✅ Confirmed
- Push notifications: ✅ Confirmed

### Failures: [count]
- Settings screen - crash on navigation

### Created Todos: [count]
- `006-pending-p1-xcode-settings-crash.md`

### Result: [PASS / FAIL / PARTIAL]

</test_summary>

9. クリーンアップ

テストの後:

ログの取得を停止します。

mcp__xcodebuildmcp__stop_log_capture({ simulator_id: "[uuid]" })

必要に応じてシミュレーターを終了します。

mcp__xcodebuildmcp__shutdown_simulator({ simulator_id: "[uuid]" })

使用例

# Test with default scheme
/xcode-test

# Test specific scheme
/xcode-test MyApp-Debug

# Test after making changes
/xcode-test current

/workflows:review との連携

iOS コードに関する PR をレビューする際、/workflows:review コマンドからサブエージェントとしてこれを起動できます。

Task general-purpose("Run /xcode-test for scheme [name]. Build, install on simulator, test key screens, check for crashes.")

コメント