Skip to content
Back to skills

Collection

ASecurity

TypeScript/Playwright Test + Generator/Healer Agents活用によるE2Eテスト作成パターンガイド。E2Eテスト実装時・data-testid属性設計時・Blazor Server SignalR対応時に使用。Phase B2で確立した93.3%効率化パターン + Phase B2-F2でTypeScript移行完了。

  • 24 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
developmentjavascripttypescriptjavac#git

Works with

  • claude code
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-bfbfb970/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-bfbfb970)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: playwright-e2e-patterns
description: TypeScript/Playwright Test + Generator/Healer Agents活用によるE2Eテスト作成パターンガイド。E2Eテスト実装時・data-testid属性設計時・Blazor Server SignalR対応時に使用。Phase B2で確立した93.3%効率化パターン + Phase B2-F2でTypeScript移行完了。
allowed-tools: Read, Grep
---

# Playwright E2E Test Patterns

## 概要

このSkillは、TypeScript/Playwright Test + Generator/Healer Agents活用によるE2Eテスト作成パターンを自律的に適用します。

**Phase B2-F2移行完了**:
- ✅ C# E2Eテストプロジェクト削除完了
- ✅ TypeScript/Playwright Test移行完了
- ✅ Playwright Test Generator Agent統合(60-70%時間削減)
- ✅ Playwright Test Healer Agent統合(50-70%成功率)
- ✅ Phase B2で確立した**93.3%効率化パターン**継続適用

## 使用タイミング

Claudeは以下の状況でこのSkillを自律的に使用すべきです:

1. **E2Eテスト実装時**
   - 新規E2Eテストコード作成時
   - Blazor Serverコンポーネントのテスト作成時
   - UserProjects/ProjectMembers等の機能テスト作成時

2. **data-testid属性設計時**
   - Blazor Serverコンポーネント実装時
   - UI要素への data-testid 属性付与時
   - E2Eテスト準備時

3. **Blazor Server SignalR対応時**
   - StateHasChanged()待機処理実装時
   - SignalR接続確立確認実装時
   - Toast通知検証実装時

4. **Playwright MCPツール選択時**
   - playwright_navigate/snapshot/click/fill等の使い分け判断時
   - アクセシビリティツリー取得時
   - ブラウザ操作パターン選択時

## 3つのE2Eテストパターン

### 1. data-testid属性設計パターン

**詳細**: [`patterns/data-testid-design.md`](./patterns/data-testid-design.md)

**概要**:
- **ボタン**: `{action}-button` (例: `member-add-button`, `member-delete-button`)
- **入力フィールド**: `{field}-input` (例: `username-input`, `password-input`)
- **リスト**: `{entity}-list` (例: `member-list`, `project-list`)
- **カード**: `{entity}-card` (例: `member-card`, `project-card`)
- **エラー**: `{context}-error-message` (例: `member-error-message`)
- **リンク**: `{target}-link` (例: `member-management-link`)

**適用場面**:
- Blazor Serverコンポーネント実装時に自律的に適用
- E2Eテスト作成時のセレクタ選択に自律的に適用

---

### 2. Playwright MCPツール活用パターン

**詳細**: [`patterns/mcp-tools-usage.md`](./patterns/mcp-tools-usage.md)

**概要**:
- **playwright_navigate**: URL遷移・ページ読み込み
- **playwright_snapshot**: アクセシビリティツリー取得(構造化データ・高速・正確)
- **playwright_click**: ボタン・リンククリック
- **playwright_fill**: フォーム入力
- **playwright_select**: ドロップダウン選択
- **playwright_wait_for**: 要素表示待機・時間待機

**適用場面**:
- E2Eテスト実装時に最適なMCPツールを自律的に選択
- ブラウザ操作パターンに応じた使い分け判断

---

### 3. Blazor Server SignalR対応パターン

**詳細**: [`patterns/blazor-signalr-e2e.md`](./patterns/blazor-signalr-e2e.md)

**概要**:
- **StateHasChanged()待機**: `await page.WaitForTimeoutAsync(1000);` による非同期UI更新待機
- **SignalR接続確立確認**: `await page.WaitForLoadStateAsync(LoadState.NetworkIdle);`
- **Toast通知検証**: `.toast-success`, `[role='alert']` セレクタ使用
- **JavaScript confirmダイアログ処理**: `page.Dialog` イベントハンドラ登録

**適用場面**:
- Blazor Server E2Eテスト実装時に自律的に適用
- 非同期UI更新・SignalR接続の考慮が必要な場面

---

## Phase B2 Step6実証結果

### 効率化実績
- **従来手法推定時間**: 2-3時間/機能(150-180分)
- **Playwright MCP活用実測時間**: 約10分/機能
- **削減率**: **93.3%**(計画75-85%を大幅超過) 🎉

### 削減要因
1. ✅ data-testid属性設計パターン確立(Phase B2 Step5完了)
2. ✅ Blazor Server SignalR対応知見(Phase B1基盤活用)
3. ✅ C# Playwright実装経験蓄積

### 作成したE2Eテスト(実証例)
- `tests/UbiquitousLanguageManager.E2E.Tests/UserProjectsTests.cs`
  - ProjectMembers_AddMember_ShowsSuccessMessage
  - ProjectMembers_RemoveMember_ShowsSuccessMessage
  - ProjectMembers_AddDuplicateMember_ShowsErrorMessage

---

## GitHub Issue #56対応

このSkillは、bUnit統合テスト技術的課題8件のE2E代替実装パターンを提供します:

### bUnitで困難な範囲(E2Eテストで実証)
1. **EditForm送信ロジック**: `OnValidSubmit`イベントトリガー
2. **子コンポーネント連携**: ProjectMemberSelector/ProjectMemberCard統合
3. **Blazor Server SignalR接続**: StateHasChanged()動作確認
4. **JavaScript confirmダイアログ**: 削除確認ダイアログ処理
5. **Toast通知表示**: 非同期通知検証
6. **非同期UI更新**: SignalR経由の自動更新確認

---

## 関連ADR・GitHub Issues

### ADR
- **ADR_021**: Playwright MCP + Agents統合戦略(技術決定の歴史的記録)
- ADR_020: テストアーキテクチャ決定
- ADR_010: 実装規約

### GitHub Issues
- **GitHub Issue #56**: bUnit統合テスト技術課題(E2E代替実装完了)
- **GitHub Issue #54**: Agent Skills導入提案(本Skillで Phase 1前倒し完了)

---

## 横展開可能性

このSkillは、以下のプロジェクトに高い横展開価値を提供します:

### 対象プロジェクト
- .NET + Blazor Server プロジェクト全般
- F# + C# Clean Architecture プロジェクト
- SignalR を使用するリアルタイムWeb アプリケーション
- Playwright for .NET 採用プロジェクト

### Plugin化構想
- **ubiquitous-language-manager-skills** Pluginの一部として配布予定
- Claude Code Marketplace申請検討(Phase B完了後)
- コミュニティ貢献・横展開基盤構築

---

## 次のステップ

### Phase B3以降での活用
- Claudeが自律的にこのSkillを使用してE2Eテスト作成
- Playwright Agents(Planner/Generator/Healer)との統合活用
- 新規機能実装時の自動E2Eテスト生成パターン確立

### Skill拡張
- bUnit代替パターンの追加(GitHub Issue #56完全解決)
- Playwright Healer Agent実用評価結果の反映
- UI変更時の自動修復パターン追加

---

**Skill作成日**: 2025-10-26
**Phase**: Phase B2 Step6 Stage 4
**実証結果**: 93.3%効率化達成
**GitHub Issue #54**: Phase 1実験的導入 前倒し完了 🎉

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…