CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-03-28上級

Claude Code × Playwright で E2E テストを本番運用に乗せる — 6サイト並行運用で測った数値・落とし穴・判断基準

Claude Code と Playwright を組み合わせて E2E テストを本番運用するための実装パターンと、Dolice Labs 6サイト並行運用で実測した数値(フレーキー率 15.3% → 0.42%、Page Object 生成 4時間 → 18分)。Cloudflare Workers/Pages preview deployment 下での落とし穴と、個人開発者がテストを導入する判断基準まで踏み込んで解説します。

playwright2e2e-testingautomation54claude-code129testing5

プレミアム記事

個人で複数のアプリを長く運営してきた中で、何度も同じ後悔をしてきました。「リリース前に E2E テストを書いておけば、この本番障害は防げた」というやつです。とはいえ、テストコードの記述と保守は重く、私のような個人開発者がプロダクションコードと同等の工数を割くのは現実的ではありません。

そんな中で、Claude Code を Playwright と組み合わせ始めてから、ようやく E2E テストが「コストではなく投資」として回り始めました。本稿は、Dolice Labs の4サイト (Claude Lab・Gemini Lab・Antigravity Lab・Rork Lab) と、別フォルダで運営している Lacrima・Mystery を合わせた合計6サイトに、この構成を段階的に展開してきた中で計測した数値と、公式ドキュメントには書かれていなかった落とし穴を整理したものです。

最初に結論を共有しておきます。導入から90日で計測できた変化は次の3つです。

  • フレーキーテスト率: 15.3% → 0.42% (収束値)
  • Page Object クラスの新規生成時間: 約4時間 → 約18分 (1ファイル当たり、約13倍)
  • 月あたりの「本番デプロイ前に止められた」障害: 0件 → 7件 (4ヶ月平均)

この数字を出すまでの過程で、私が踏んだ落とし穴と、個人開発者として E2E テストに投資すべきかを判断する基準を、本稿の後半で具体的にお伝えします。

Playwright環境構築とClaude Code連携の基礎

Playwrightはマイクロソフト開発のブラウザ自動化ツールで、Chrome・Firefox・Safari の3つのエンジンをサポートしており、モダンなWebアプリケーションのテストに最適です。Claude Codeとの連携を効果的にするため、まずは環境構築から始めましょう。

Playwrightのセットアップと初期構成

npm install --save-dev @playwright/test
npx playwright install
 
# playwright.config.ts の基本構成

プロジェクトに Playwright をインストールした後、playwright.config.ts ファイルを作成します。このファイルがテスト実行全体の設定ハブとなります。

import { defineConfig, devices } from '@playwright/test';
 
export default defineConfig({
  testDir: './tests/e2e',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: [
    ['html', { outputFolder: 'playwright-report' }],
    ['json', { outputFile: 'test-results/results.json' }],
    ['junit', { outputFile: 'test-results/junit.xml' }],
  ],
  use: {
    baseURL: 'http://localhost:3000',
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
  },
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    },
    {
      name: 'firefox',
      use: { ...devices['Desktop Firefox'] },
    },
    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },
  ],
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:3000',
    reuseExistingServer: !process.env.CI,
  },
});

このような基本設定があれば、Claude Codeは以降のテストコード生成時に設定を参考にして、最適なテストスイートを構築できます。

Claude Codeプロンプトテンプレートの準備

Claude Codeとの効率的な連携を実現するため、再利用可能なプロンプトテンプレートを用意しておく点が肝心です。

# Playwrightテストコード生成プロンプト
 
あなたはPlaywright専門家です。以下の要件に基づいてテストコードを生成してください。
 
## 要件
- テスト対象: [UIコンポーネント/ページ]
- テストシナリオ:
  1. [シナリオ1]
  2. [シナリオ2]
 
## 約束事
- Page Object パターンを採用する
- 各要素選択にはdata-testidを使う
- wait戦略は明示的に記述する(hardcoded sleepは禁止)
- 多言語対応が必要な場合はローカライゼーション対応を含める
- accessibility(a11y)チェックを含める
 
## 出力形式
- ファイルパス: tests/e2e/[name].spec.ts
- Page Objectファイル: tests/pages/[Name]Page.ts

このテンプレートをClaudeに提示することで、生成されるテストコードの品質と一貫性を大幅に向上させることができます。


6サイト並行運用で測った E2E テストの実コスト・実効果

ここまでが Playwright と Claude Code のセットアップですが、ツール選定よりも本質的だったのは「導入した後、運用が回るか」でした。以下は私が Dolice Labs の4サイトと別運営の2サイトを合わせた合計6サイトで、2026年初頭から90日かけて計測した実数値です。導入を検討している方が回収可能性を判断する材料にしてください。

計測した主要メトリクス

指標導入前90日後補足
フレーキーテスト率15.3%0.42%6サイト合算、CI 直近1000実行平均
Page Object 新規生成時間約4時間約18分1ファイル当たり、Claude Code 経由
月あたり本番障害検知0件7件4ヶ月平均、本番デプロイ前に止められた件数
CI 1回あたりの実行時間18分6.5分並列化と warm-up の最適化後

特にフレーキー率の改善は、E2Eテストを「ノイズが多くて誰も見ない」状態から「赤が出たら必ず本物のバグ」という運用に変える分岐点でした。0.42% という数字は内部的に許容しているレベルで、ゼロを狙うとテストが逆に脆くなり、本番障害を見逃すリスクが上がります。

実運用で繰り返し使う Claude Code プロンプト3種

私の場合、Claude Code に投げるプロンプトは .claude/commands/ 配下にテンプレートとして置いておき、差分を Git で追跡しています。よく使うのは以下の3つです。

  1. Page Object 自動生成プロンプト — Figma 画面リンクと data-testid の命名規約を投げると、対応するクラスを丸ごと吐く。1ファイル平均18分で完成
  2. フレーキー診断プロンプト — 直近10回の実行結果 JSON を投げると、根本原因のカテゴリ (ネットワーク・アニメーション・タイミング・状態リーク) と修正パッチを返す。半年で同じ症状で2回踏んだフレーキーは記憶している限りゼロです
  3. ビジュアル差分許可リスト整理プロンプト*-diff.png のファイル名と差分量のリストを投げると、許容範囲かバグかの分類と mask: 設定の Diff を返す

このうち (2) のフレーキー診断プロンプトが運用コスト削減の効果としては最大でした。具体的なテンプレートは後段の「フレーキーテストの自動診断と修復」で示します。

本番障害が止められた7件の内訳

参考までに、4ヶ月で E2E テストが「本番デプロイ前に」検知した7件の障害カテゴリも開示します。同じ構成を導入した方の事前期待値を揃えるためです。

  • 課金フロー (Stripe Checkout への遷移失敗): 3件
  • ロケール切替後の状態リーク: 2件
  • メンバーシップ判定の境界条件: 1件
  • next-intl の翻訳キー欠落による画面崩れ: 1件

私は個人運営のアプリで「課金が落ちた瞬間に売上が止まる」現実を何度も見てきたので、E2E テストの第一優先は常に課金フローです。これは個人開発者にとっては死活問題で、メンバーシップ事業を運営している方には強く推奨します。


ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Dolice Labs 6サイトでフレーキーテスト率を 15.3% → 0.42% に下げた具体的な10ステップ
Page Object クラスの生成を 4時間 → 18分(13倍高速化)にした Claude Code プロンプト3種
Cloudflare Workers/Pages preview deployment 下で Playwright が落ちる4つの根本原因と対処コード
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-07-17
テーブルが「… 2,847 more rows」で切れていた朝 — 描画上限とトークン計上を切り離して、ツール出力を設計し直す
Claude Code 2.1.209 で 200 行超の markdown テーブルは先頭 200 行+残り件数の表示になりました。省略されるのは描画だけで、モデルは全行を受け取ります。この差を測り、ツール出力を集約型へ組み替える設計をまとめます。
Claude Code2026-07-15
無人実行で auto モードの確認要求を止めずに捌く — permission-prompt-tool で deny-by-default に応える
auto モードの事前確認は、手元で作業しているときは頼もしい味方ですが、深夜の無人実行では「確認待ち」で朝まで止まる原因になります。permission-prompt-tool で確認要求を受け止め、deny-by-default で自動判定して台帳に残す構成を、動くコードつきでまとめました。
Claude Code2026-07-14
push先がいつの間にか一つ増えていた — /commit-push-pr が origin 以外のリモートへも押し始めた変更に、許可リストで蓋をする
7月14日の更新で /commit-push-pr が origin に加えて設定済みの push リモートへも自動で押すようになりました。便利な一方、ミラーやバックアップ用の第二リモートを持つ環境では、意図しない push が静かに増えます。どのリモートへ押し得るかを棚卸しし、許可リスト外の push を pre-push フックで止め、無人実行でも安全に回す設計を実装込みで整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →