jpskill.com
🛠️ 開発・MCP コミュニティ

testing-mobile

Mobile: XCUITest, Espresso, Detox, Maestro, BrowserStack/Sauce Labs/Firebase Test Lab, screenshots

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o testing-mobile.zip https://jpskill.com/download/22280.zip && unzip -o testing-mobile.zip && rm testing-mobile.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22280.zip -OutFile "$d\testing-mobile.zip"; Expand-Archive "$d\testing-mobile.zip" -DestinationPath $d -Force; ri "$d\testing-mobile.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して testing-mobile.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → testing-mobile フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1
📖 Claude が読む原文 SKILL.md(中身を展開)

この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。

testing-mobile

Purpose

This skill automates mobile app testing using frameworks like XCUITest for iOS, Espresso for Android, Detox for end-to-end, Maestro for flows, and cloud services like BrowserStack, Sauce Labs, or Firebase Test Lab. It focuses on UI testing, device compatibility, and screenshot capture to ensure app reliability across platforms.

When to Use

Use this skill when building or maintaining iOS/Android apps and needing to run UI tests, verify interactions, or test on real devices. Apply it in CI/CD pipelines for regression testing, before releases, or when debugging UI issues on specific devices like iPhone 14 or Pixel 6.

Key Capabilities

  • XCUITest: Write UI tests for iOS using XCTest framework.
  • Espresso: Automate Android UI tests with precise interactions.
  • Detox: Perform end-to-end tests on iOS/Android with flaky test handling.
  • Maestro: Define test flows via YAML for cross-platform mobile testing.
  • Cloud integration: Run tests on BrowserStack/Sauce Labs/Firebase Test Lab for parallel execution on real devices.
  • Screenshots: Capture and compare screenshots for visual regression testing.
  • Device farms: Access emulators/simulators or real devices via APIs.

Usage Patterns

To accomplish tasks, structure tests as follows: Write test scripts in Swift/Kotlin/JavaScript, configure environments with device specs, and run via CLI or APIs. For local testing, use simulators; for scale, upload to cloud services. Always set up dependencies like Xcode for iOS or Android SDK first. Example pattern: Initialize tests, perform actions, assert results, and handle cleanups.

Common Commands/API

Use these exact commands for testing:

  • XCUITest (iOS): Run tests with xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 14' -only-testing:MyAppTests. Pass env vars for keys like $XCUITEST_API_KEY.

    Code snippet:

    import XCTest
    class MyAppTests: XCTestCase {
        func testButtonTap() { /* assertions */ }
    }
  • Espresso (Android): Execute via Gradle: ./gradlew connectedAndroidTest --tests com.example.MyTest. Use flags like --stacktrace for debugging.

    Code snippet:

    import androidx.test.espresso.Espresso;
    Espresso.onView(withId(R.id.my_button)).perform(click());
  • Detox: Build and run with detox build -c ios.sim.release then detox test -c ios.sim.release. Configure in package.json for scripts.

    Code snippet:

    describe('Login', () => {
        it('should login', async () => { await element(by.id('username')).typeText('user'); });
    });
  • Maestro: Run flows with maestro test my-flow.yml. YAML format: appId: com.example.app and steps: - launchApp.

  • BrowserStack: Upload and run via API: POST to https://api-cloud.browserstack.com/app-automate/espresso/v2 with JSON payload, using $BROWSERSTACK_ACCESS_KEY in headers.

  • Sauce Labs: Use sc run --device "iPhone 14" --app myapp.ipa or API endpoint: POST https://api.us-west-1.saucelabs.com/v1/{username}/jobs with auth header Authorization: Basic $SAUCE_ACCESS_KEY.

  • Firebase Test Lab: Run with gcloud firebase test android run --app myapp.apk --test mytest.apk --device model=shiba, requiring $GOOGLE_APPLICATION_CREDENTIALS env var.

Integration Notes

Integrate by adding dependencies: For XCUITest, ensure Xcode is installed; for Espresso, include in build.gradle. Set env vars like $BROWSERSTACK_USERNAME and $BROWSERSTACK_ACCESS_KEY for cloud auth. Use config files: e.g., detox.config.js with { configurations: { 'ios.sim.debug': { device: 'iPhone 14' } } }. In CI/CD (e.g., GitHub Actions), add steps like run: detox test and handle artifacts for screenshots. For parallel runs, specify matrices in your workflow.

Error Handling

Handle errors prescriptively: For XCUITest, if "No such device" occurs, check destination string and ensure simulator is booted via xcrun simctl boot iPhone 14. For Espresso, if tests fail due to timeouts, add .withTimeout(5000) in code. Detox flaky tests: Use await waitFor(element).toBeVisible();. For cloud services, if auth fails (e.g., 401 from BrowserStack), verify $BROWSERSTACK_ACCESS_KEY and retry. Parse API responses for errors, e.g., check HTTP status codes and log details. Common fix: Update dependencies or device profiles in configs.

Concrete Usage Examples

  1. Run XCUITest on local simulator: Write a test for button click, then execute: xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 14'. Ensure your test file has: func testExample() { XCTAssertTrue(app.buttons["Submit"].exists) }. This verifies UI elements quickly.

  2. Upload and run tests on BrowserStack: First, set env vars: export BROWSERSTACK_ACCESS_KEY=your_key. Then, use cURL: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_ACCESS_KEY" -X POST https://api-cloud.browserstack.com/app-automate/espresso/v2 -d '{"app": "bs://..."}'. This runs tests on real devices for comprehensive coverage.

Graph Relationships

  • Related to: testing-general (shares testing cluster)
  • Depends on: authentication-service (for API keys like $BROWSERSTACK_ACCESS_KEY)
  • Integrates with: mobile-development (for app builds)
  • Conflicts with: none
  • Extends: device-farm-management (via cloud testing)