e2e-testlisted
Install: claude install-skill ijufumi/claude-skills
# E2Eテスト作成・修正スキル
APIエンドポイントの特定からテストケース設計、テストコード実装、テスト実行までを一貫して支援するスキル。各エンドポイントに対して正常系・異常系の両方をカバーするE2Eテストを作成する。
## 前提条件
- テスト対象のプロジェクトがカレントディレクトリまたはユーザーが指定するディレクトリに存在すること
- ソースコードが読み取り可能であること
- テストフレームワークがプロジェクトに導入済みであること(未導入の場合はユーザーに確認の上セットアップする)
- アプリケーションがローカルで起動可能であること(または テストクライアント経由でリクエストを送信可能であること)
## テスト方針
本スキルは以下の方針に基づいてE2Eテストを作成する:
1. **全エンドポイントを網羅**: 各エンドポイントに対して少なくとも1つのテストケースを作成する
2. **正常系と異常系の両方を網羅**: 期待通りのレスポンスだけでなく、エラーレスポンスも必ずテストする
3. **データベースアクセスはリアルDB**: DBにアクセスするエンドポイントは、テスト用のデータベースを使って実際にアクセスするテストを書く。通常実行用DBとは別のテスト用DBを用意する
4. **それ以外はモック**: DB以外の外部依存(外部APIコール、メール送信等)はモックを使用する
5. **テストの独立性**: 各テストケースは他のテストに依存せず、単独で実行可能にする
6. **テストデータのクリーンアップ**: DBテストではテスト前後にデータをクリーンアップし、テスト間の副作用を防ぐ
7. **実際のHTTPリクエスト**: 可能な限り実際のHTTPリクエスト/レスポンスサイクルを通じてテストする
## ワークフロー概要
```
[Step 1: プロジェクト構成の把握]
→ [Step 2: エンドポイントの特定]
→ [Step 3: テストケースの設計]
→ [Step 4: ユーザーにテストケース設計を確認]
→ [Step 5: 作業ブランチの作成]
→ [Step 6: テストコードの実装]
→ [Step 7: テストの実行と品質確認]
→ [Step 8: ユーザーにテストコードを確認]
→ [Step 9: 修正・追加対応]
→ [Step 10: リモートプッシュとPR作成]
```
---
## Step 1: プロジェクト構成の把握
プロジェクトの言語、Webフレームワーク、テストフレームワーク、既存のテスト構成を把握する。
### 1-1: 言語・Webフレームワークの特定
```bash
# ビルドファイル・設定ファイルからの推定
ls package.json tsconfig.json go.mod go.sum Cargo.toml pom.xml build.gradle build.gradle.kts settings.gradle.kts build.sbt project/build.properties Gemfile requirements.txt pyproject.toml setup.py composer.json pubspec.yaml Makefile 2>/dev/null
```
Webフレームワークの特定:
| 言語 | Webフレームワーク例 | 確認方法 |
|---