typo3-testing-skill は何をしますか?
TYPO3拡張テストを作成・管理するためのエージェントスキル(Claude Code対応)
概要
このスキルは、Claude CodeのようなAIエージェントがTYPO3拡張機能のテストを効率的に作成・管理できるようにするためのものです。テスト駆動開発のワークフローをサポートし、テストケースの自動生成、テスト環境のセットアップ、テスト実行のための指示を提供します。
機能
- テスト環境のセットアップ: TYPO3テストフレームワーク(phpunit/phpunit, typo3/testing-framework)をComposerでインストール
- テストケース生成: ユニットテスト、機能テスト、データベーステストのテンプレート生成
- 実行: コマンドラインからのテスト実行指示
- モック管理: TYPO3特有のモックオブジェクトの生成サポート
- CI統合: CI/CDパイプライン(GitHub Actions, GitLab CIなど)向けのテスト設定
対応プラットフォーム
- Claude Code
- Cursor
- その他のAIエージェント
使用方法
1. テスト環境のセットアップ
composer require --dev typo3/testing-framework
2. テスト設定ファイルの生成
phpunit.xml.dist をプロジェクトルートに作成します:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.0/phpunit.xsd"
backupGlobals="true"
bootstrap="vendor/autoload.php"
colors="true"
verbose="true">
<testsuites>
<testsuite name="unit">
<directory>Tests/Unit</directory>
</testsuite>
<testsuite name="functional">
<directory>Tests/Functional</directory>
</testsuite>
</testsuites>
<php>
<ini name="display_errors" value="1"/>
<env name="TYPO3_CONTEXT" value="Testing"/>
</php>
</phpunit>
3. テストの作成
ユニットテストの例
<?php
namespace MyVendor\MyExtension\Tests\Unit;
use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
class MyClassTest extends UnitTestCase
{
/**
* @test
*/
public function myMethodReturnsExpectedValue(): void
{
$subject = new \MyVendor\MyExtension\MyClass();
$result = $subject->myMethod();
self::assertEquals('expected', $result);
}
}
データベーステストの例
<?php
namespace MyVendor\MyExtension\Tests\Functional;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
class MyRepositoryTest extends FunctionalTestCase
{
protected array $testExtensionsToLoad = [
'typo3conf/ext/my_extension'
];
/**
* @test
*/
public function findAllReturnsAllRecords(): void
{
$this->importCSVDataSet(__DIR__ . '/Fixtures/Records.csv');
$subject = $this->getContainer()->get(\MyVendor\MyExtension\Domain\Repository\MyRepository::class);
$result = $subject->findAll();
self::assertCount(3, $result);
}
}
4. テストの実行
# ユニットテスト実行
vendor/bin/phpunit -c phpunit.xml.dist --testsuite unit
# 機能テスト実行(データベースが必要)
vendor/bin/phpunit -c phpunit.xml.dist --testsuite functional
注意事項
- データベーステストを実行するには、事前にデータベースサーバー(MySQL/MariaDB)が起動している必要があります。
- TYPO3テストフレームワークはPHP 7.4以上を推奨します。
- このスキルはClaude Codeに最適化されていますが、他のAIエージェントでも利用可能です。
ライセンス
MIT