关于 test
ActivityPub 测试技能,为 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