Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
The English summary is being prepared. Showing the original description.
重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。
以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。
./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Android テスト実行を自動化し、テスト失敗を分析し、実行可能な修正提案を提供する Claude Code スキルです。
このスキルは Android 開発者を支援します:
| エラーメッセージ | Pattern | クイックフィックス |
|---------------|---------|-----------| | Unable to locate a Java Runtime | 6, 12 | export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" |
| Unknown command-line option '--tests' | 5, 11 | ./gradlew :module:testVariantDebugUnitTest |
| No answer found for: (MockK) | 2 | every { mock.method() } returns value |
| No value passed for parameter | 7, 13 | 不足しているコンストラクタパラメータを追加 |
| Test not found (Compose UI) | 17 | androidTest/ に移動 |
| NoSuchElementException (Flow) | 19 | Turbine の .test {} を使用 |
| expected: X but was: Y | 8, 14 | Mock データを確認 |
| CI失敗、ローカル成功 | 16, 18 | すべてのバリアントをテスト ./gradlew test |
詳細は knowledge/test-failure-patterns.md を参照
User: すべてのunit testを実行して
Assistant: [./gradlew test を実行し結果を分析]
User: UserRepositoryのテストを実行して
Assistant: [./gradlew test --tests "*UserRepositoryTest" を実行し結果を分析]
テストが失敗すると、このスキルは自動的に:
User: LoginViewModelTestが失敗した理由は?
Assistant: [テスト失敗ログを分析し以下を提供:
- 根本原因の説明
- 関連するコードスニペット
- コード例付きの具体的な修正]
ユーザーが Android テストの実行やテスト失敗の分析をリクエストした場合、以下の手順に従ってください:
テストを実行する前に、環境を確認・設定してください:
# JAVA_HOMEが設定されているか確認
if [ -z "$JAVA_HOME" ]; then
# macOS: Android Studio JBR を自動検出
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
fi
# 確認
$JAVA_HOME/bin/java -version
エラー検出:
# ビルドバリアントを検出(存在する場合)
./gradlew tasks --all | grep "test.*UnitTest"
# 出力例(multi-variantプロジェクト):
# :app:testDevelopDebugUnitTest
# :app:testDevelopReleaseUnitTest
# :app:testProductionDebugUnitTest
ビルドバリアント検出:
testXxxDebugUnitTest タスクが存在 → プロジェクトにビルドバリアントありUnknown command-line option '--tests' エラー → バリアント固有タスクを使用する必要ありBuildType認識: 本番プロジェクトには複数のBuild Typeが存在することが多い:
Debug: 通常のテスト実行(最も一般的)Release: リリースビルドCiRelease: CI専用リリースビルドMinified: 難読化テストビルド総バリアント数 = Product Flavors × Build Types
Debug ビルドタイプのみテストDebug でテスト(./gradlew :module:testDebug)./gradlew :module:test)ビルドバリアントありのプロジェクト:
# 単一バリアント(最速、クイックチェック用)
./gradlew :module:testVariantDebugUnitTest
# すべてのバリアント(CI相当、コミット前推奨)
./gradlew :module:test
ビルドバリアントなしのプロジェクト:
# 標準コマンドが動作
./gradlew test
./gradlew test --tests "*TestClass"
Bashツールを使用してGradleテストコマンドを実行してください。重要: 常に最初にJAVA_HOMEを設定してください(ステップ0から)。
# すべてのunit test
./gradlew test
# 特定のテストクラス
./gradlew test --tests "*UserRepositoryTest"
# 特定のテストメソッド
./gradlew test --tests "*UserRepositoryTest.testGetUser"
# 詳細出力付き
./gradlew test --info
# JAVA_HOME設定 + 単一バリアントテスト
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" && \
./gradlew :module:testVariantDebugUnitTest
# すべてのバリアント(CI相当、コミット前推奨)
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" && \
./gradlew :module:test
# 特定モジュールの特定バリアント
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" && \
./gradlew :data:testProductionDebugUnitTest
エラー1: Unknown command-line option '--tests'
# バリアントを検出
./gradlew tasks --all | grep "test.*UnitTest"
# バリアントタスクを使用
./gradlew :module:testVariantDebugUnitTest
エラー2: Unable to locate a Java Runtime
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
./gradlew :module:testVariantDebugUnitTest
重要:
テスト実行後、出力を分析:
成功インジケータ:
失敗インジケータ:
抽出:
失敗を一般的なパターンと照合(完全なリストは knowledge/test-failure-patterns.md を参照):
一般的なパターン:
レスポンスを以下の形式でフォーマット:
## テスト失敗分析
**失敗したテスト**: `UserRepositoryTest.testGetUser()`
**根本原因**: MockK mock が `userApi.getUser()` に対して設定されていない
**修正方法**:
`UserRepositoryTest.kt:45` で、mock設定を追加:
```kotlin
@Before
fun setup() {
every { userApi.getUser() } returns Result.success(mockUser)
}
説明:
テストが userApi.getUser() を呼び出していますが、MockKは何を返すべきか分かりません。
every { ... } returns ... を使用してmockの動作を定義する必要があります。
### 5. ナレッジ参照
一般的なパターンについては、以下のナレッジファイルを参照:
- `knowledge/test-failure-patterns.md` - 一般的なAndroidテスト失敗パターン(19パターン)
- `knowledge/project-template.md` - プロジェクト固有のカスタマイズ用テンプレート
- `templates/fix-suggestions.md` - 修正提案用テンプレート
## 重要事項
- 常にプロジェクトルートから実行
- ログを注意深く解析して正確な失敗場所を特定
- ファイルパスと行番号を提供(例: `UserRepository.kt:25`)
- 修正提案時に実際のテストファイルからコードスニペットを含める
- テスト修正は最小限で焦点を絞ったものに
- プロジェクト固有のパターンについては、プロジェクト固有のナレッジファイルを参照
## カスタマイズ
### プロジェクト固有版の作成
最大の精度(80% → 98%)を得るために、プロジェクト固有版を作成:
1. このスキルをプロジェクトにコピー:
```bash
cp -r android-test-runner your-project/.claude/skills/
knowledge/project-specific.md を以下の内容で作成:
開発ワークフローについては ~/.config/claude-code/AI_DEVELOPMENT_GUIDELINES.md を参照。
このスキルは Agent Skills オープンスタンダードに準拠しています。
対応ツール:
.claude/skills/ ディレクトリに配置することで、上記すべてのツールで使用可能です。
android-test-runner v0.2(プロジェクト固有版、98%精度)をベースにしています
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
The English summary is being prepared. Showing the original description.
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
The English summary is being prepared. Showing the original description.
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
The English summary is being prepared. Showing the original description.
Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.
The English summary is being prepared. Showing the original description.
Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。
The English summary is being prepared. Showing the original description.
非同期処理のバックエンドとフロントエンドを実装する際のベストプラクティスをまとめたスキルです。非同期処理が必要なWebサービスのフロントエンドおよびバックエンドを実装する際に利用されます。
The English summary is being prepared. Showing the original description.