mcpField
S
sc-e2e

sc-e2e

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

sc-e2e について

sc-e2eは、エンドツーエンドテストの実行、失敗のデバッグ、操作の記録、テストのひな型生成を行うスキルです。プロジェクト設定からPlaywright、Cypress、Seleniumを検出し、実行、トレース、レポートのワークフローを提供します。

主な機能

  1. 01Playwright、Cypress、Seleniumの検出
  2. 02対象を絞ったE2Eテストの実行
  3. 03対話型の失敗デバッグ
  4. 04ブラウザー操作からテストコードを記録
  5. 05テスト仕様とページオブジェクトの生成
  6. 06トレースとテストレポートの表示

活用シーン

  1. 01指定したE2Eテストファイルの実行
  2. 02失敗したブラウザーテストの調査
  3. 03ユーザーフローをテストコードとして記録
  4. 04テスト仕様とページオブジェクトの作成

MCP 対応

このスキルでは、失敗分析、テストレビュー、フレームワーク文書の検索にPAL MCPツールを、Slackへの結果送信やチケット更新にRube MCPツールを利用する方法を説明しています。

インストール

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

$npx skills add https://github.com/tony363/superclaude --skill sc-e2e

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

詳細

E2E テストスキル

複数のフレームワークに対応し、対話型デバッグ機能を備えた包括的なエンドツーエンドテストのワークフローです。

クイックスタート

# Run all E2E tests
/sc:e2e run

# Run specific test file
/sc:e2e run --file auth.spec.ts

# Debug failing test
/sc:e2e debug --file auth.spec.ts --ui

# Record user interactions
/sc:e2e record --url /login

# Run with tracing enabled
/sc:e2e trace --file checkout.spec.ts

# Generate test scaffold
/sc:e2e generate spec user-profile

# View test report
/sc:e2e report

動作フロー

  1. 検出 - E2E フレームワーク(Playwright、Cypress、Selenium)を特定します
  2. 設定 - 引数からモードとオプションを解析します
  3. 実行 - 選択したモードを実行します
  4. 分析 - 結果を解析し、失敗を特定します
  5. 対話 - デバッグ、再実行、修正のオプションを提示します
  6. レポート - 次に実行可能な手順とともに結果を提示します

フラグ

フラグ型デフォルト説明
--file文字列-対象とする特定のテストファイル
--grep文字列-名前のパターンでテストをフィルタリングします
--headedブール値falseブラウザーを表示するモードで実行します
--workers整数auto並列ワーカーの数
--uiブール値falseフレームワークの UI モードを開きます
--url文字列/記録モードの開始 URL
--output文字列-生成したコードの出力ファイル
--framework文字列auto使用するフレームワークを指定します:playwright、cypress、selenium

フレームワークの検出

プロジェクト設定から E2E フレームワークを自動検出します。

フレームワーク検出方法設定ファイル
Playwrightpackage.json の @playwright/testplaywright.config.ts
Cypresspackage.json の cypresscypress.config.ts
Seleniumpackage.json の selenium-webdriverwdio.conf.js
# Detection logic
if [ -f "playwright.config.ts" ] || [ -f "playwright.config.js" ]; then
  FRAMEWORK="playwright"
elif [ -f "cypress.config.ts" ] || [ -f "cypress.config.js" ]; then
  FRAMEWORK="cypress"
elif [ -f "wdio.conf.js" ] || [ -f "wdio.conf.ts" ]; then
  FRAMEWORK="selenium"
fi

モード 1:run - テストを実行

任意のフィルターと設定を使って E2E テストを実行します。

Playwright
npx playwright test [--grep "pattern"] [--headed] [--workers N] [file]
Cypress
npx cypress run [--spec "file"] [--headed] [--browser chrome]
実行後の分析

テストの実行後、出力を解析し、対話型のオプションを提示します。

Test run complete: X passed, Y failed

  [r] Re-run failed tests
  [d] Debug failing test
  [t] View trace/screenshot
  [f] Fix with /sc:tdd
  [a] Run all tests
  [q] Quit

モード 2:debug - 対話型デバッグ

フレームワークのデバッグモードを起動して、ステップ実行でテストします。

Playwright のデバッグオプション
オプションコマンド用途
UI モードnpx playwright test --uiタイムトラベル機能を使ったビジュアルなステップ実行
インスペクターPWDEBUG=1 npx playwright testセレクタービルダーとブレークポイント
スローモーションnpx playwright test --headed --slowmo=500テストの実行を確認
Cypress のデバッグオプション
オプションコマンド用途
オープンモードnpx cypress open対話型テストランナー
デバッグnpx cypress run --headed --no-exit失敗時にブラウザーを開いたままにします
デバッグのヒント
  • ブレークポイントには await page.pause()(Playwright)または cy.pause()(Cypress)を使用します
  • test-results/ または cypress/screenshots/ のスクリーンショットを確認します
  • タイムトラベルデバッグにはトレースビューアーを使用します

モード 3:record - ユーザー操作を記録

codegen ツールを使ってブラウザーでの操作を記録し、テストコードを生成します。

Playwright
npx playwright codegen http://localhost:3000[url-path]
Cypress
npx cypress open  # Use Cypress Studio for recording
記録後
  1. 生成されたコードを確認します
  2. ページオブジェクトパターンへの変換を提案します:
    • セレクターをページオブジェクトクラスに抽出します
    • 操作を再利用可能なメソッドに変換します
    • 既存のパターンに基づいてアサーションを追加します

モード 4:trace - トレース

トレースを有効にしてテストを実行するか、既存のトレースを表示します。

Playwright
# Run with tracing
npx playwright test --trace on [file]

# View trace
npx playwright show-trace test-results/[trace].zip
Cypress
# Traces are auto-captured in cypress/videos/
# Screenshots in cypress/screenshots/

モード 5:generate - テストのひな形を生成

プロジェクトのパターンに沿ってテストファイルを生成します。

generate spec <name>

以下を含む新しいテスト仕様ファイルを作成します:

  • フレームワークのインポート文
  • ページ名を含む describe ブロック
  • ログイン/ナビゲーションを含む beforeEach
  • よくあるシナリオの空のテストスタブ
generate page <name>

以下を含む新しいページオブジェクトを作成します:

  • 対象ページのコンポーネントから抽出したセレクター定数
  • 操作メソッド(クリック、入力、ナビゲーション)
  • アサーションヘルパー(expectLoaded、expectError)
ページオブジェクトパターン
// Playwright page object template
import { Page, Locator, expect } from '@playwright/test';

export class UserProfilePage {
  readonly page: Page;
  readonly nameInput: Locator;
  readonly saveButton: Locator;

  constructor(page: Page) {
    this.page = page;
    this.nameInput = page.getByTestId('profile-name');
    this.saveButton = page.getByTestId('profile-save');
  }

  async goto(): Promise<void> {
    await this.page.goto('/profile');
  }

  async updateName(name: string): Promise<void> {
    await this.nameInput.fill(name);
    await this.saveButton.click();
  }

  async expectLoaded(): Promise<void> {
    await expect(this.nameInput).toBeVisible();
  }
}

モード 6:report - レポートを表示

テストレポートを表示して分析します。

Playwright
npx playwright show-report
Cypress
# Open Mochawesome report if configured
open cypress/reports/index.html
出力の概要
## E2E Test Report

| Suite | Tests | Passed | Failed | Skipped | Duration |
|-------|-------|--------|--------|---------|----------|
| Auth | 5 | 5 | 0 | 0 | 12.3s |
| Dashboard | 8 | 7 | 1 | 0 | 24.1s |
| Checkout | 3 | 3 | 0 | 0 | 18.7s |

**Total**: 16 tests, 15 passed, 1 failed (93.8%)

環境変数

変数用途
BASE_URLテスト対象のアプリケーション URL(デフォルト:http://localhost:3000)
E2E_USERNAMEテストユーザーの認証情報
E2E_PASSWORDテストユーザーのパスワード
CICI 用にワーカー数と再試行回数を調整します
PWDEBUGPlaywright Inspector を有効にします

MCP 連携

PAL MCP
ツール使用するタイミング目的
mcp__pal__debugテストの失敗時E2E テスト失敗の根本原因を分析します
mcp__pal__codereview生成されたテストテストの品質とカバレッジをレビューします
mcp__pal__apilookupフレームワークのドキュメント最新の Playwright/Cypress API ドキュメントを取得します
PAL の使用パターン
# Debug failing E2E test
mcp__pal__debug(
    step="E2E test 'checkout flow' fails on payment step",
    hypothesis="Selector changed after UI update",
    confidence="medium",
    relevant_files=["tests/e2e/checkout.spec.ts", "src/components/PaymentForm.tsx"]
)

# Review generated page object
mcp__pal__codereview(
    review_type="quick",
    step="Review generated page object for completeness",
    relevant_files=["tests/e2e/pages/checkout.page.ts"]
)
Rube MCP
ツール使用するタイミング目的
mcp__rube__RUBE_MULTI_EXECUTE_TOOLCI 連携E2E の結果を Slack に投稿し、チケットを更新します

ツールの連携

  • Bash - フレームワークの CLI コマンド(playwright、cypress)
  • Glob - テストファイルの検出、ページコンポーネントのスキャン
  • Grep - コンポーネントからのセレクター抽出、テスト出力の解析
  • Read - ページオブジェクト生成のためのコンポーネント調査
  • Write - 生成されたテストファイル、ページオブジェクト

関連スキル

  • /sc:test - 単体テストと統合テスト
  • /sc:tdd - テスト駆動開発のワークフロー
  • /sc:pr-check - E2E を含む PR 前の検証
  • /sc:implement - テスト生成を伴う機能実装

コメント