typo3-testing
Agent Skill: TYPO3 extension testing (unit, functional, E2E, architecture, mutation). This skill should be used when setting up test infrastructure, writing tests, configuring PHPUnit, testing time-dependent code, mocking dependencies, or configuring CI/CD for TYPO3 extensions. By Netresearch.
SKILL.md
| Name | typo3-testing |
| Description | Agent Skill: TYPO3 extension testing (unit, functional, E2E, architecture, mutation). This skill should be used when setting up test infrastructure, writing tests, configuring PHPUnit, testing time-dependent code, mocking dependencies, or configuring CI/CD for TYPO3 extensions. By Netresearch. |
name: typo3-testing description: "Use when setting up TYPO3 extension test infrastructure, writing unit/functional/E2E/architecture tests, configuring PHPUnit, testing time-dependent code, mutation testing, mocking dependencies, configuring CI/CD for TYPO3 extensions, or debugging failing tests in CI (including multi-version TYPO3 v13/v14 test failures)."
TYPO3 Testing Skill
Templates, scripts, and references for comprehensive TYPO3 extension testing.
Test Type Selection
| Type | Use When | Speed |
|---|---|---|
| Unit | Pure logic, no DB, validators, utilities | Fast |
| Functional | DB interactions, repositories, controllers | Medium |
| Architecture | Layer constraints, dependency rules (phpat) | Fast |
| E2E (Playwright) | User workflows, browser, accessibility | Slow |
| Integration | HTTP client, API mocking, OAuth flows | Medium |
| Fuzz | Security, parsers, malformed input | Manual |
| Crypto | Encryption, secrets, key management | Fast |
| Mutation | Test quality verification, 70%+ coverage | CI/Release |
Setup and Running Tests
# Setup
<skill-dir>/scripts/setup-testing.sh [--with-e2e] # Initialize testing
<skill-dir>/scripts/validate-setup.sh # Validate existing setup
<skill-dir>/scripts/generate-test.sh <Type> <Class> # Generate test file
# Run tests
Build/Scripts/runTests.sh -s unit # Unit tests
Build/Scripts/runTests.sh -s functional # Functional tests
Build/Scripts/runTests.sh -s architecture # Architecture tests (phpat)
Build/Scripts/runTests.sh -s e2e # E2E tests (Playwright)
Build/Scripts/runTests.sh -s lint # Linting
Build/Scripts/runTests.sh -s phpstan # Static analysis
Build/Scripts/runTests.sh -s mutation # Mutation testing
After creating or modifying a test, always verify it fails before the fix and passes after. Run the full suite to ensure no regressions.
Scoring Requirements
| Criterion | Requirement |
|---|---|
| Unit tests | Required, 70%+ coverage |
| Functional tests | Required for DB operations |
| Architecture tests | phpat required for full points |
| PHPStan | Level 10 (max) |
References
| Reference | Topic |
|---|---|
unit-testing.md | UnitTestCase, mocking, FakeClock |
functional-testing.md | FunctionalTestCase, CSV fixtures, TSFE limitations |
functional-test-patterns.md | PHPUnit 10+ migration, container reset |
integration-testing.md | PSR-18 mocking, OAuth flows |
e2e-testing.md | Playwright, Page Object Model |
ddev-testing.md | Local multi-version matrix |
test-runners.md | runTests.sh, Docker orchestration |
architecture-testing.md | phpat, layer constraints |
ci-debugging.md | Multi-version CI failure analysis |
ci-cd.md | GitHub Actions, GitLab CI |
quality-tools.md | PHPStan, PHP-CS-Fixer, Rector |
mutation-testing.md | Infection, MSI |
typo3-v14-final-classes.md | Interface extraction, mock strategies |
javascript-testing.md | Jest, frontend testing |
enforcement-rules.md | E2E CI rules, troubleshooting |
All references in references/ directory.
Explicit Content Triggers
When debugging CI test failures across TYPO3 versions, load references/ci-debugging.md for multi-version error comparison and debugging checklist.
When writing functional tests that need frontend context (parseFunc, typoLink, TSFE), load references/functional-testing.md for known limitations and workarounds.
External Resources
- TYPO3 Testing Documentation
- Tea Extension (reference implementation)
- phpat documentation
- Infection PHP documentation
- DDEV documentation
Contributing: https://github.com/netresearch/typo3-testing-skill