mcpField
P
promote-handover-test

promote-handover-test

github.com/agentmantisテスト・品質12109 回インストール29 週間前に更新
リポジトリ

promote-handover-test について

完了した Playwright の引き継ぎテストを回帰またはスモークテストに移すためのテストスキルです。ファイルや test.describe の変更、統合、POM の JSDoc 確認、実行、元ファイルの削除を案内します。

主な機能

  1. 01引き継ぎテストを回帰・スモークへ移行
  2. 02既存の機能別 spec へ統合
  3. 03ファイルと test.describe の改名
  4. 04POM メソッドの JSDoc 確認
  5. 05テスト実行後に元 spec を削除

活用シーン

  1. 01完了したチケットのテストを回帰テストとして保持
  2. 02重要な経路のテストをスモークスイートへ移動
  3. 03既存の機能別 spec にテストを統合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agentmantis/test-skills --skill promote-handover-test

インストール後、Claude Code で/promote-handover-testを入力して読み込まれたか確認します。

詳細

引き継ぎテストの昇格

完了した引き継ぎテストを tests/handover/ から tests/regression/ または tests/smoke/ に移動します。


ワークフロー

  1. 引き継ぎテストを見つける — e2e/tests/handover/ でチケットキーまたはファイルパスを検索します
  2. 移行先のスイートを決定する — regression(デフォルト)または smoke(ユーザーが指定した場合)
  3. 移行先ディレクトリに同じ機能の既存の spec があるか確認します
    • 存在する場合は、テストを既存の test.describe ブロックに統合します
    • 存在しない場合は、新しい spec ファイルを作成します
  4. 昇格に必要な変更を適用する(下記のチェックリストを参照)
  5. 元の引き継ぎ spec を tests/handover/ から削除します
  6. 新しい場所でテストを実行します:
    npx playwright test --project="chromium:regression" {feature}.spec.ts
    

昇格チェックリスト

1. ファイル名を変更する

チケットキーのプレフィックスを削除します:

BEFORE: e2e/tests/handover/PROJ-456-bulk-export.spec.ts
AFTER:  e2e/tests/regression/bulk-export.spec.ts

機能の regression spec(例:vault.spec.ts)がすでにある場合は、新しいファイルを作成せず、そのファイルにテストを統合します。

2. test.describe を更新する

describe ブロックからチケットキーを削除します:

// BEFORE
test.describe('PROJ-456: Bulk Export', () => {

// AFTER
test.describe('Bulk Export', () => {

既存の spec に統合する場合は、既存の test.describe ブロック内にテストを追加します(または、機能領域が異なる場合はネストされた test.describe を作成します)。

3. POM の JSDoc を確認する

このチケットで追加されたすべての POM メソッドに、完全な JSDoc があることを確認します:

  • 概要行
  • Steps ブロック(番号付き)
  • すべてのパラメーターに対する @param タグ
4. テストを実行する

新しい場所でテストが成功することを確認します:

# For regression
npx playwright test --project="chromium:regression" {feature}.spec.ts

# For smoke
npx playwright test --project="chromium:smoke" {feature}.spec.ts

# Across all browsers
npx playwright test --project="*:regression" {feature}.spec.ts
5. 元のファイルを削除する

昇格後のバージョンが成功することを確認してから、引き継ぎ spec を tests/handover/ から削除します。


判断:昇格、統合、それとも削除?

シナリオ対応
機能が恒久的で、既存の regression spec がないtests/regression/{feature}.spec.ts に昇格する
機能が恒久的で、regression spec がすでにあるテストを既存の regression spec に統合する
機能がクリティカルパス上にあるtests/smoke/{feature}.spec.ts に昇格する
機能が既存のテストで完全にカバーされている引き継ぎ spec を削除する
機能が取り消された引き継ぎ spec を削除する

例:昇格の全手順

変更前(引き継ぎ)

ファイル:e2e/tests/handover/MANT-123-vault-bulk-delete.spec.ts

import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { VaultPage } from '../../poms/vault.page';

const authFile = getAuthFilePath();

test.describe('MANT-123: Vault Bulk Delete', () => {
    test.beforeAll(async ({ browser }) => {
        const context = await browser.newContext({
            storageState: authFile,
        });
        const page = await context.newPage();
        const vault = new VaultPage(page);
        await vault.setUp();
        await page.close();
        await context.close();
    });

    test('should select and delete multiple items', async ({ page, testData }) => {
        // ...
    });
});
変更後(regression)

ファイル:e2e/tests/regression/vault.spec.ts(既存の spec に統合、または新規ファイル)

import { test } from '../../fixtures/base';
import { getAuthFilePath } from '../../helpers/env-config';
import { VaultPage } from '../../poms/vault.page';

const authFile = getAuthFilePath();

test.describe('Vault Tests', () => {
    test.beforeAll(async ({ browser }) => {
        const context = await browser.newContext({
            storageState: authFile,
        });
        const page = await context.newPage();
        const vault = new VaultPage(page);
        await vault.setUp();
        await page.close();
        await context.close();
    });

    // ... existing tests ...

    test('should select and delete multiple items', async ({ page, testData }) => {
        // ... (promoted from MANT-123)
    });
});

元のファイル e2e/tests/handover/MANT-123-vault-bulk-delete.spec.ts は削除されます。

コメント