playwright について
Next.js アプリの Playwright エンドツーエンドテスト向けリファレンススキルです。テスト構成、セレクター、デバッグ、CI など8分野のルールを優先度別にまとめています。
主な機能
- 018カテゴリ、45のルール
- 02テスト分離と構成の指針
- 03セレクターとアサーションの実践
- 04認証状態の再利用
- 05ネットワークモックと Next.js テスト
- 06性能、デバッグ、CI の指針
活用シーン
- 01Next.js アプリの Playwright テスト作成
- 02不安定または失敗するテストの調査
- 03テスト間での認証状態の再利用
- 04テストコードと CI 設定のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pymodel/ react-frontend-skills --skill playwrightインストール後、Claude Code で/playwrightを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/arch-cleanup-state.mdarch-fixtures.mdarch-page-object-model.mdarch-parallel-execution.mdarch-test-isolation.mdarch-test-production.mdassert-aria-snapshots.mdauth-api-login.mdauth-multiple-roles.mdauth-parallel-workers.mdauth-session-storage.mdauth-storage-state.mddebug-ci-reporters.mddebug-inspector.mddebug-screenshots-videos.mddebug-trace-viewer.mdloc-avoid-xpath.mdloc-chained-locators.mdloc-data-testid.mdloc-frame-locator.mdloc-label-selectors.mdloc-placeholder-selector.mdloc-role-selectors.mdloc-text-selectors.mdmock-abort-requests.mdmock-api-responses.mdmock-har-files.mdmock-intercept-modify.mdmock-network-conditions.mdnext-app-router-navigation.md詳細
Playwright + Next.js のテストに関するベストプラクティス
Next.js アプリケーションで Playwright を使用するための、包括的なテスト最適化ガイドです。信頼性が高く、高速で保守しやすい E2E テストを実現できるよう、影響度に基づいて優先順位付けした 8 カテゴリー、45 のルールをまとめています。
適用するタイミング
以下のような場合に、これらのガイドラインを参照してください。
- Next.js アプリ向けに新しい Playwright テストを作成するとき
- 不安定なテストや失敗するテストをデバッグするとき
- テスト実行速度を最適化するとき
- 認証状態の再利用を設定するとき
- テスト用の CI/CD パイプラインを構成するとき
- Server Components や App Router の機能をテストするとき
- 信頼性に問題がないかテストコードをレビューするとき
優先度別のルールカテゴリー
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | テストアーキテクチャ | CRITICAL | arch- |
| 2 | セレクターとロケーター | CRITICAL | loc- |
| 3 | 待機とアサーション | HIGH | wait- |
| 4 | 認証と状態 | HIGH | auth- |
| 5 | モックとネットワーク | MEDIUM-HIGH | mock- |
| 6 | Next.js との連携 | MEDIUM | next- |
| 7 | パフォーマンスと速度 | MEDIUM | perf- |
| 8 | デバッグと CI | LOW-MEDIUM | debug- |
クイックリファレンス
1. テストアーキテクチャ(CRITICAL)
arch-test-isolation- テストごとに新しいブラウザーコンテキストを使用するarch-parallel-execution- テストの並列実行を有効にするarch-page-object-model- 複雑なページには Page Object Model を使用するarch-fixtures- 共通のセットアップにはフィクスチャを使用するarch-test-production- 本番ビルドに対してテストするarch-cleanup-state- 各テストの後にテスト状態をクリーンアップする
2. セレクターとロケーター(CRITICAL)
loc-role-selectors- CSS よりロールベースのセレクターを使用するloc-data-testid- 動的な要素には data-testid を使用するloc-label-selectors- フォーム入力には getByLabel を使用するloc-text-selectors- 静的なコンテンツには getByText を使用するloc-avoid-xpath- XPath セレクターを避けるloc-chained-locators- 特定を絞り込むにはロケーターを連結するloc-placeholder-selector- getByPlaceholder は控えめに使用するloc-frame-locator- frameLocator で iframe 内の要素を特定する
3. 待機とアサーション(HIGH)
wait-web-first-assertions- Web ファーストのアサーションを使用するassert-aria-snapshots- aria スナップショットでアクセシビリティ構造を検証するwait-avoid-hard-waits- 固定時間の待機を避けるwait-network-idle- ネットワークアイドルではなく、観測可能な準備完了を待つwait-action-retries- 操作の前にアクションの自動待機を利用するwait-soft-assertions- 重要度の低いチェックにはソフトアサーションを使用するwait-custom-timeout- タイムアウトを適切に設定する
4. 認証と状態(HIGH)
auth-storage-state- ストレージ状態を使って認証を再利用するauth-multiple-roles- 役割ごとに別のストレージ状態を使用するauth-session-storage- 認証用のセッションストレージを扱うauth-api-login- 認証のセットアップを高速化するために API ログインを使用するauth-parallel-workers- 並列テストではワーカー単位の認証を使用する
5. モックとネットワーク(中〜高)
mock-api-responses- 決定的なテストのために API レスポンスをモックしますmock-intercept-modify- 実際のレスポンスをインターセプトして変更しますmock-har-files- 複雑なモックシナリオに HAR ファイルを使用しますmock-abort-requests- 不要なリクエストを中止しますmock-network-conditions- ネットワークの状態をシミュレートします
6. Next.js との統合(中)
next-wait-hydration- 操作する前にハイドレーションを待機しますnext-server-components- サーバーコンポーネントを正しくテストしますnext-app-router-navigation- App Router のナビゲーションパターンをテストしますnext-server-actions- サーバーアクションをエンドツーエンドでテストしますnext-baseurl-config- スムーズなナビゲーションのために baseURL を設定します
7. パフォーマンスと速度(中)
perf-sharding- 大規模なテストスイートでシャーディングを使用しますperf-headless-ci- CI でヘッドレスモードを使用しますperf-browser-selection- ブラウザーを戦略的に選択しますperf-reuse-server- 安全な場合は、条件に合うローカルサーバーを再利用しますperf-retries- 再試行を使用して不安定さを検出し、診断します
8. デバッグと CI(低〜中)
debug-trace-viewer- 失敗したテストでトレースビューアーを使用しますdebug-screenshots-videos- 失敗時にスクリーンショットと動画を撮影しますdebug-inspector- 対話的なデバッグに Playwright Inspector を使用しますdebug-ci-reporters- CI 連携用にレポーターを設定します
使用方法
まず、プロジェクトのルートで実行します。
npx -y @pymodel/react-frontend-skills detect # installed vs. targeted versions
npx -y @pymodel/react-frontend-skills scan --skill playwright # deprecated APIs → rule IDs
該当する上記の各ルールと、scan で検出された項目について、references/<rule-id>.md を読み、重要な理由と、誤ったコードと正しいコードを確認します。
コメント
Markdown 対応