init について
Playwright のエンドツーエンドテスト環境を初期化するスキルです。プロジェクトを調査し、設定、テスト構成、サンプルテスト、該当する場合は CI 設定を生成します。検出したフレームワークやファイルに応じて内容を調整します。
主な機能
- 01フレームワークとプロジェクトファイルの調査
- 02必要に応じた Playwright の導入
- 03フレームワークに合わせた設定生成
- 04テスト構成とサンプルテストの作成
- 05CI ワークフローと npm スクリプトの追加
- 06テスト実行による設定確認
活用シーン
- 01新規プロジェクトへのブラウザテスト導入
- 02既存アプリへのエンドツーエンドテスト追加
- 03CI 向け Playwright テストの準備
- 04フレームワークに応じたテスト設定の調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill initインストール後、Claude Code で/initを入力して読み込まれたか確認します。
詳細
Playwright プロジェクトを初期化する
本番環境に対応した Playwright のテスト環境をセットアップします。フレームワークを検出し、設定、フォルダー構成、サンプルテスト、CI ワークフローを生成します。
手順
1. プロジェクトを分析する
Explore サブエージェントを使ってプロジェクトをスキャンします。
package.jsonを確認し、フレームワーク(React、Next.js、Vue、Angular、Svelte)を特定しますtsconfig.jsonを確認します。存在する場合は TypeScript を使用し、ない場合は JavaScript を使用します- Playwright がすでにインストールされているか確認します(依存関係に
@playwright/testがあるか) - 既存のテストディレクトリ(
tests/、e2e/、__tests__/)を確認します - 既存の CI 設定(
.github/workflows/、.gitlab-ci.yml)を確認します
2. Playwright をインストールする
まだインストールされていない場合:
npm init playwright@latest -- --quiet
または、手動でのセットアップを希望する場合:
npm install -D @playwright/test
npx playwright install --with-deps chromium
3. playwright.config.ts を生成する
検出されたフレームワークに合わせて設定します。
Next.js:
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './e2e',
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: [
['html', { open: 'never' }],
['list'],
],
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,
},
});
React(Vite):
baseURLをhttp://localhost:5173に変更しますwebServer.commandをnpm run devに変更します
Vue/Nuxt:
baseURLをhttp://localhost:3000に変更しますwebServer.commandをnpm run devに変更します
Angular:
baseURLをhttp://localhost:4200に変更しますwebServer.commandをnpm run startに変更します
フレームワークが検出されない場合:
webServerブロックを省略しますbaseURLはユーザーの入力値に設定するか、プレースホルダーのままにします
4. フォルダー構成を作成する
e2e/
├── fixtures/
│ └── index.ts # Custom fixtures
├── pages/
│ └── .gitkeep # Page object models
├── test-data/
│ └── .gitkeep # Test data files
└── example.spec.ts # First example test
5. サンプルテストを生成する
import { test, expect } from '@playwright/test';
test.describe('Homepage', () => {
test('should load successfully', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/.+/);
});
test('should have visible navigation', async ({ page }) => {
await page.goto('/');
await expect(page.getByRole('navigation')).toBeVisible();
});
});
6. CI ワークフローを生成する
.github/workflows/ が存在する場合は、playwright.yml を作成します。
name: "playwright-tests"
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: "install-dependencies"
run: npm ci
- name: "install-playwright-browsers"
run: npx playwright install --with-deps
- name: "run-playwright-tests"
run: npx playwright test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: "playwright-report"
path: playwright-report/
retention-days: 30
.gitlab-ci.yml が存在する場合は、代わりに Playwright のステージを追加します。
7. .gitignore を更新する
まだ記載されていない場合は、追記します。
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
8. npm スクリプトを追加する
package.json の scripts に追加します。
{
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:debug": "playwright test --debug"
}
9. セットアップを確認する
サンプルテストを実行します。
npx playwright test
結果を報告します。失敗した場合は、完了する前に原因を特定して修正します。
出力
作成した内容を確認します。
- 設定ファイルのパスと主要な設定
- テストディレクトリとサンプルテスト
- CI ワークフロー(該当する場合)
- 追加した npm スクリプト
- 実行方法:
npx playwright testまたはnpm run test:e2e
コメント
Markdown 対応