typo3-testing について
typo3-testingは、TYPO3拡張機能のテストスイートを改善する開発者向けスキルです。評価レポートを起点に、テスト種別の選択、スクリプト、CIの資料を提供します。
主な機能
- 0173項目以上のチェックによる評価
- 02テスト種別の選択ガイド
- 03テスト環境の設定・検証スクリプト
- 04ユニット・機能・アーキテクチャテストの指針
- 05CIとテスト障害の参考資料
活用シーン
- 01既存のTYPO3テストスイートの評価
- 02データベース処理のテスト計画
- 03runTests.shと品質チェックの設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill typo3-testingインストール後、Claude Code で/typo3-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/.php-cs-fixer.dist.phpAGENTS.mdbootstrap.phpcodecov.ymlFunctionalTests.xmlFunctionalTestsBootstrap.phpgithub-actions-e2e.ymlgithub-actions-tests.ymlinfection.json5Makefilephpat.neonassets/Build/playwright/.nvmrcpackage.jsonplaywright.config.tsassets/Build/playwright/tests/playwright/config.tsassets/Build/playwright/tests/playwright/accessibility/modules.spec.tsassets/Build/playwright/tests/playwright/e2e/backend-module.spec.tsassets/Build/playwright/tests/playwright/fixtures/setup-fixtures.tsassets/Build/playwright/tests/playwright/helper/login.setup.tsassets/Build/Scripts/runTests.shassets/docker/codeception.ymldocker-compose.ymlassets/example-tests/ExampleAcceptanceCest.phpExampleFunctionalTest.phpExampleUnitTest.phpassets/fixtures/be_users.csvpages.csvREADME.mdsys_category.csvtt_content.csv詳細
TYPO3 テストスキル
評価を先に行うルール
既存のテストスイートを強化する場合(ゼロから作成する場合を除く)は、最初に次を実行します。
automated-assessment typo3-testing
より広範なカバレッジを得るには、
typo3-conformanceやenterprise-readinessなどのほかのスキルをインストールしてください。
73 項目以上のチェックポイント(PHPUnit、PHPStan、runTests.sh、CaptainHook、アーキテクチャ、ミューテーション、CI マトリックス、カバレッジ)からギャップレポートを生成します。
このレポートをタスクリストとして使用してください。 手動でテストを書く前に、機械的に検出できる問題を解決します。
対象
- 「テストを強化/改善/堅牢化する」、「カバレッジ/ミューテーションを増やす」
- 「エンタープライズグレード」、「A+ のテスト」
対象外
- ゼロからの作成、特定のテストの作成、失敗のデバッグ
TYPO3 拡張機能のテストに関するリファレンスです。
テスト種別の選択
| 種別 | 使用する場面 | 速度 |
|---|---|---|
| 単体テスト | 純粋なロジック、DB を使わない処理、バリデーター、ユーティリティ | 高速 |
| 機能テスト | DB 操作、リポジトリ、コントローラー | 中速 |
| アーキテクチャテスト | レイヤーの制約、依存関係のルール(phpat) | 高速 |
| E2E(Playwright) | ユーザーワークフロー、ブラウザー、アクセシビリティ | 低速 |
| 統合テスト | HTTP クライアント、API のモック、OAuth フロー | 中速 |
| ミューテーションテスト | テスト品質の検証、カバレッジ 70%以上 | CI/リリース |
runTests.sh - 必須
Build/Scripts/runTests.sh は必須です。実行可能であり、-s(スイート)と -p(PHP バージョン)をサポートする必要があります。
Git フック
Netresearch のデフォルト設定:Build/captainhook.json(composer.json の extra.captainhook.config で宣言されています)。確認するには、次を実行します:ls Build/captainhook.json .git/hooks/pre-commit 2>/dev/null(references/captainhook-setup.md を参照)。
コマンド
# Setup (from skill dir)
scripts/setup-testing.sh [--with-e2e]
scripts/validate-setup.sh
scripts/generate-test.sh <Type> <Class>
# Run (always via runTests.sh)
Build/Scripts/runTests.sh -s unit|functional|phpstan|cgl|mutation|ci
修正前にテストが失敗し、修正後に成功することを確認します。バグ修正では、references/tdd-discipline.md の厳格な TDD サイクルに従ってください。出力を貼り付けずに「テスト済み/検証済み」と主張してはいけません。
スコア要件
単体テストが必要です(カバレッジ 70%以上)。DB 操作には機能テストが必要です。アーキテクチャの評価項目には phpat が必須 です。PHPStan のレベルは 10 です。
リファレンス(references/ 内、拡張子 .md は省略)
unit-testing.md | functional-testing.md | functional-test-patterns.md | integration-testing.md | e2e-testing.md | accessibility-testing.md | ddev-testing.md | test-runners.md | architecture-testing.md | ci-debugging.md | ci-cd.md | quality-tools.md | mutation-testing.md | fuzz-testing.md | performance-testing.md | typo3-v14-final-classes.md | mock-validity.md | javascript-testing.md | captainhook-setup.md | enforcement-rules.md | event-dispatch-testing.md | crypto-testing.md | test-environment-guards.md | sonarcloud.md | typo3-ci-config-patterns.md | tdd-discipline.md | ci-workflows-meta-package.md | synthetic-secret-fixtures.md | release-workflow-validation.md | asset-templates-guide.md | backend-module-render-verification.md | backend-user-access-testing.md
コンテンツに応じた参照先
- TYPO3 のバージョン間で CI が失敗する →
ci-debugging.md - TSFE コンテキストを使用する機能テスト →
functional-testing.md - 依存関係のバージョン間でモックが失敗する →
mock-validity.md - 画像/拡張機能のテスト、
Environment::initialize、NormalizedParamsの TypeError、backupGlobals→test-environment-guards.md - try/catch を使ったイベントディスパッチャーのテスト →
event-dispatch-testing.md - メタパッケージ、typo3-ci-workflows、no-plugins →
ci-workflows-meta-package.md - 偽のシークレット、プッシュ保護、cs-fixer concat →
synthetic-secret-fixtures.md - 使用済みタグ、タグ付け前の検証 →
release-workflow-validation.md - バックエンドモジュールの 500 エラー/誤った ViewHelper 名前空間/暴走する canvas →
backend-module-render-verification.md - 管理者以外の BE ユーザーによるアクセス制御 →
backend-user-access-testing.md
リンク
TYPO3 テストドキュメント | Tea 拡張機能 | phpat | Infection
クレジットと帰属
このスキルは、 Netresearch DTT GmbH による素晴らしい取り組みを基にしています。
元のリポジトリ:https://github.com/netresearch/typo3-testing-skill
著作権 (c) Netresearch DTT GmbH — 方法論とベストプラクティス(MIT / CC-BY-SA-4.0)
このスキルコレクションの形成に役立った、TYPO3 コミュニティへの寛大なオープンソースの貢献に対し、Netresearch DTT GmbH に心より感謝します。 このスキルコレクション向けに webconsulting.at が適応しました