mcpField
T
test

test

github.com/automattic测试与质量58380 次安装1 天前更新
代码仓库

关于 test

ActivityPub 测试技能,为 WordPress ActivityPub 插件开发者提供 PHPUnit、Playwright E2E 和 JavaScript 单元测试的参考,涵盖测试模式、调试与覆盖率。

主要功能

  1. 01PHPUnit 测试结构与模式
  2. 02Playwright E2E 测试示例
  3. 03测试分组与数据工具参考
  4. 04覆盖率报告指引
  5. 05测试调试与隔离

适用场景

  1. 01为插件功能编写 PHPUnit 测试
  2. 02验证管理页面或联邦发现流程
  3. 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