test

Шаблоны тестирования для PHPUnit и Playwright E2E тестов. Используйте при написании тестов, отладке ошибок тестов, настройке покрытия тестами или реализации шаблонов тестирования…

npx skills add https://github.com/automattic/wordpress-activitypub --skill test

ActivityPub Testing

This skill provides guidance on writing and running tests for the WordPress ActivityPub plugin.

Quick Reference

For complete testing commands and environment setup, see Testing Reference.

Key Commands

  • PHP: npm run env-test
  • E2E: npm run test:e2e
  • JavaScript: npm run test:unit

PHPUnit Testing

Test Structure

<?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
    }
}

Common Test Patterns

For transformer and handler testing patterns, see Testing Reference - Writing Effective Tests.

For mocking HTTP requests and other utilities, see Testing Reference - Test Utilities.

Test Groups

Use @group annotations:

/**
 * @group activitypub
 * @group federation
 */
public function test_federation_feature() {
    // Test code
}

E2E Testing with Playwright

Basic E2E Test

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');
});

Testing Federation

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');
});

Test Data Factories

For creating test data (users, posts, comments), see Testing Reference - Test Utilities.

Coverage Reports

See Testing Reference for detailed coverage generation instructions.

Debugging Tests

Debug Output

// In tests
var_dump( $data );
error_log( print_r( $result, true ) );

// Run with verbose
npm run env-test -- --verbose --debug

Isolating Tests

# Run single test method
npm run env-test -- --filter=test_specific_method

# Stop on first failure
npm run env-test -- --stop-on-failure

Больше skills от automattic

testing-js
automattic
Рекомендации по проверке JavaScript-файлов на синтаксические ошибки
setup
automattic
Проверить, что dn CLI установлен и настроен. Используется, когда пользователь впервые устанавливает плагин domain-names или когда команда dn не выполняется, потому что CLI…
studio-cli
automattic
Используйте Studio CLI для управления локальными сайтами WordPress, аутентификацией и предварительными сайтами. Вызывайте этот навык, когда вам нужно выполнить команды Studio CLI, управлять…
dn-info
automattic
Получить подробную информацию о зарегистрированном домене с помощью CLI dn. Используйте, когда пользователь хочет увидеть детали домена, такие как дата истечения, серверы имён, контакты,…
qa
automattic
Сравнивайте извлечённое содержимое WXR с исходной страницей сайта постранично. Находите отсутствующий текст, заголовки, изображения и ссылки. Исправляйте, дополняя WXR или…
add-skill
automattic
Добавьте новый навык в плагин a8c-design. Используйте, когда вы создали навык Claude Code и хотите внести его в общий плагин Automattic a8c-design —…
design-foundations
automattic
Создайте целостный JSON-фундамент дизайна из освобождённого сайта — семантические роли цвета/типографики/отступов с цепочками доказательств. Использует частичный каркас…
wp-phpstan
automattic
Используется при настройке, запуске или исправлении статического анализа PHPStan в проектах WordPress (плагины/темы/сайты): настройка phpstan.neon, базовые линии,…