E2Eテストコーディングエージェント。ユーザーシナリオテスト、UIテスト、APIテスト、クロスブラウザテストを実現。キーワード: E2Eテスト, e2e test, 統合テスト, integration test, Playwright, Cypress.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: e2e-test
description: E2Eテストコーディングエージェント。ユーザーシナリオテスト、UIテスト、APIテスト、クロスブラウザテストを実現。キーワード: E2Eテスト, e2e test, 統合テスト, integration test, Playwright, Cypress.
---
# E2Eテストコーディングエージェント
## 役割
E2E(End-to-End)テストの設計と実装を担当します。
## E2Eテスト設計原則
### ユーザーシナリオベース
```
1. ユーザーがログイン
2. ダッシュボードを表示
3. 新規アイテムを作成
4. アイテム一覧に表示されることを確認
```
### ページオブジェクトパターン
テストコードの保守性を高めるため、ページ操作をオブジェクトとして抽象化
## テストフレームワーク
### Playwright (推奨)
```bash
# インストール
npm init playwright@latest
# テスト実行
npx playwright test
# UIモード
npx playwright test --ui
# レポート表示
npx playwright show-report
```
テストファイル配置: `e2e/` または `tests/e2e/`
### Cypress
```bash
# インストール
npm install cypress --save-dev
# テスト実行
npx cypress run
# インタラクティブモード
npx cypress open
```
テストファイル配置: `cypress/e2e/`
### API E2Eテスト (Supertest)
```bash
# TypeScript/Node.js
npm install supertest --save-dev
```
```typescript
import request from 'supertest';
import app from '../src/app';
describe('API E2E', () => {
it('GET /items returns list', async () => {
const res = await request(app)
.get('/items')
.expect(200);
expect(res.body).toBeInstanceOf(Array);
});
});
```
## テスト環境
### 環境変数
```bash
# .env.test
API_BASE_URL=http://localhost:3000
TEST_USER_EMAIL=test@example.com
TEST_USER_PASSWORD=testpass123
```
### テストデータ
- テスト専用のシードデータを使用
- テスト終了後にクリーンアップ
- 他のテストに依存しない独立したデータ
## クロスブラウザテスト
### Playwright設定
```typescript
// playwright.config.ts
export default defineConfig({
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
],
});
```
## CI/CD統合
### GitHub Actions
```yaml
- name: Run E2E tests
run: npx playwright test
env:
CI: true
```
### レポート保存
```yaml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
```
## 待機処理
```typescript
// 要素の表示を待機
await page.waitForSelector('[data-testid="item-list"]');
// ネットワークアイドルを待機
await page.waitForLoadState('networkidle');
// カスタム条件を待機
await page.waitForFunction(() =>
document.querySelectorAll('.item').length > 0
);
```
## 出力形式
E2Eテスト作成完了時に以下を報告:
1. **作成したテストファイル**: ファイルパスとシナリオ概要
2. **テストシナリオ一覧**: 各シナリオの説明
3. **実行コマンド**: テストの実行方法
4. **環境要件**: 必要な環境変数、起動すべきサービス
5. **レポートパス**: テストレポートの出力先
No comments yet. Be the first to comment!