test について
WordPress ActivityPub プラグイン開発者向けのテストスキルです。PHPUnit、Playwright による E2E、JavaScript ユニットテストを扱い、テストパターン、デバッグ、カバレッジを案内します。
主な機能
- 01PHPUnit のテスト構成とパターン
- 02Playwright E2E の例
- 03テストグループとデータツールの案内
- 04カバレッジレポートの手順
- 05テストのデバッグと切り分け
活用シーン
- 01プラグイン機能の PHPUnit テスト作成
- 02管理画面や連合探索フローの検証
- 03失敗テストの絞り込みとデバッグ情報の取得
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ automattic/ wordpress-activitypub --skill testインストール後、Claude Code で/testを入力して読み込まれたか確認します。
詳細
ActivityPub のテスト
このスキルでは、WordPress ActivityPub プラグインのテストの作成と実行について説明します。
クイックリファレンス
テストコマンドと環境設定の詳細については、テストリファレンスを参照してください。
主なコマンド
- PHP:
npm run env-test - E2E:
npm run test:e2e - JavaScript:
npm run test:unit
PHPUnit テスト
テスト構成
<?php
namespace Activitypub\Tests;
use WP_UnitTestCase;
class Test_Feature extends WP_UnitTestCase {
public function set_up(): void {
parent::set_up();
// Setup
}
public function tear_down(): void {
// Cleanup
parent::tear_down();
}
public function test_functionality() {
// Test implementation
}
}
よく使われるテストパターン
トランスフォーマーとハンドラーのテストパターンについては、テストリファレンス - 効果的なテストの作成を参照してください。
HTTP リクエストのモックやその他のユーティリティについては、テストリファレンス - テストユーティリティを参照してください。
テストグループ
@group アノテーションを使用します:
/**
* @group activitypub
* @group federation
*/
public function test_federation_feature() {
// Test code
}
Playwright による E2E テスト
基本的な E2E テスト
const { test, expect } = require('@playwright/test');
test('ActivityPub settings page loads', async ({ page }) => {
await page.goto('/wp-admin/options-general.php?page=activitypub');
await expect(page.locator('h1')).toContainText('ActivityPub');
});
フェデレーションのテスト
test('WebFinger discovery works', async ({ page }) => {
const response = await page.request.get('/.well-known/webfinger', {
params: {
resource: 'acct:admin@localhost:8888'
}
});
expect(response.ok()).toBeTruthy();
const json = await response.json();
expect(json.subject).toBe('acct:admin@localhost:8888');
});
テストデータファクトリー
テストデータ(ユーザー、投稿、コメント)の作成については、テストリファレンス - テストユーティリティを参照してください。
カバレッジレポート
カバレッジの生成手順については、テストリファレンスを参照してください。
テストのデバッグ
デバッグ出力
// In tests
var_dump( $data );
error_log( print_r( $result, true ) );
// Run with verbose
npm run env-test -- --verbose --debug
テストの分離
# Run single test method
npm run env-test -- --filter=test_specific_method
# Stop on first failure
npm run env-test -- --stop-on-failure
コメント
Markdown 対応