create-handover-test について
チケットに紐づく一時的な Playwright 引き継ぎテストの作成を支援するスキルです。POM、テストデータ、仕様ファイルの命名、実行から、後の昇格や削除までを扱います。
主な機能
- 01チケット起点のテスト仕様
- 02POM の再利用と更新
- 03外部テストデータの準備
- 04チケットキーを含む命名規則
- 05合格後の昇格または削除手順
活用シーン
- 01チケットの受け入れ基準の検証
- 02新機能の引き継ぎテスト作成
- 03完了テストの回帰・スモークテスト化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ agentmantis/ test-skills --skill create-handover-testインストール後、Claude Code で/create-handover-testを入力して読み込まれたか確認します。
同梱ファイルreferences/handover-spec-template.md
詳細
引き継ぎテストの作成
チケット主導の引き継ぎテストを生成し、特定の受け入れ基準を検証します。
ワークフロー
- ユーザーのリクエストからチケットキーと説明を解析します(例:
PROJ-456 bulk export) - テスト対象ページの POM が
e2e/poms/に存在するか確認します- 存在する場合は読み込み、このチケットの受け入れ基準に必要な新しいメソッドを追加します
- 存在しない場合は、まず
create-pomスキルを使って作成します
- テストデータが存在するか確認します。必要に応じて作成または更新します
e2e/tests/handover/にスペックファイルを作成します- テストを実行して合格することを確認します:
npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.ts
命名規則
ファイル名
{TICKET}-{short-description}.spec.ts
{TICKET}— トラッカーに表示されるチケットキーをそのまま使用します(例:PROJ-456、MANT-123){short-description}— 簡潔な kebab-case の概要です(チケットのタイトル全体ではありません)
例:
PROJ-456-bulk-export.spec.tsMANT-123-vault-bulk-delete.spec.tsFEAT-789-user-avatar-upload.spec.ts
test.describe ブロック
外側の test.describe には、追跡可能性を確保するため、チケットキーを必ず含めます:
test.describe('PROJ-456: Bulk Export', () => {
スペックの構造
import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { FeaturePage } from '../../poms/feature.page';
const authFile = getAuthFilePath();
test.describe('PROJ-456: Bulk Export', () => {
test.beforeAll(async ({ browser }) => {
const context = await browser.newContext({
storageState: authFile,
});
const page = await context.newPage();
const pom = new FeaturePage(page);
await pom.setUp();
await page.close();
await context.close();
});
test('should export selected items as CSV', async ({ page, testData }) => {
const pom = new FeaturePage(page);
const items = testData.feature.items;
await pom.navigateToPage();
// ... validate acceptance criteria from ticket
});
test('should show error when no items selected', async ({ page }) => {
const pom = new FeaturePage(page);
await pom.navigateToPage();
// ... validate error handling criteria
});
});
完全なテンプレートについては、references/handover-spec-template.md を参照してください。
POM のルール
引き継ぎテストには、回帰テスト/スモークテストと同じすべての POM ルールが適用されます。
- テスト対象ページの既存の POM を使用します
- チケットで新しいインタラクションが必要な場合は、既存の POM にメソッドを追加します。同じページ用に 2 つ目の POM を作成してはいけません
- 新しい POM を作成するのは、チケットでまったく新しいページが導入される場合に限ります
- 新しい POM メソッドにはすべて、Steps と @param タグを含む完全な JSDoc を記述します
すべての標準ルールを適用
@playwright/testではなく、カスタムフィクスチャからtestをインポートします- スペック内で
pageを直接呼び出してはいけません。すべての操作は POM を介して行います - 各テストは独立させます。テストごとにデータを作成し、個別に移動します
- テストデータをハードコードしてはいけません。
testDataフィクスチャを介して外部 JSON を使用します - beforeAll では、クリーンアップ用に storageState を使った手動のブラウザーコンテキストを使用します
昇格ライフサイクル
引き継ぎテストは、一時的なものとして設計されています。チケットが完了したら:
| アクション | タイミング |
|---|---|
| 回帰テストに昇格 | 機能が恒久的なもので、すべてのビルドで実行すべき場合 |
| スモークテストに昇格 | 機能がクリティカルパスにある場合 |
| 削除 | 既存のテストでカバー済みの場合、または機能が取り消された場合 |
昇格の準備ができたら、promote-handover-test スキルを使用します。
古さに関するポリシー
- 各スプリント/リリース後に
tests/handover/を確認します - チケットが完了/クローズになったスペックは、昇格するか削除します
- 引き継ぎテストを無期限に実行し続けてはいけません
ファイルチェックリスト
-
e2e/poms/{feature}.page.ts— 新しいメソッドを追加して POM を更新済み(または新しい POM を作成済み) -
e2e/test-data/{feature}.json— テストデータを作成または更新済み -
e2e/tests/handover/{TICKET}-{description}.spec.ts— スペックファイル - ファイル名にチケットキーのプレフィックスが含まれている
-
test.describeにチケットキーが含まれている - すべての POM メソッドに JSDoc がある
- テストが合格する:
npx playwright test --project="chromium:handover" {TICKET}-{description}.spec.ts
コメント
Markdown 対応