typo3-testing
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTYPO3 Testing Skill
TYPO3 测试技能指南
References for TYPO3 extension testing.
TYPO3扩展测试参考文档。
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 |
| Mutation | Test quality verification, 70%+ coverage | CI/Release |
| 类型 | 适用场景 | 速度 |
|---|---|---|
| 单元测试 | 纯逻辑代码、无数据库交互、验证器、工具类 | 快 |
| 功能测试 | 数据库交互、仓库类、控制器 | 中等 |
| 架构测试 | 层级约束、依赖规则(phpat) | 快 |
| 端到端测试(Playwright) | 用户工作流、浏览器操作、可访问性 | 慢 |
| 集成测试 | HTTP客户端、API模拟、OAuth流程 | 中等 |
| 突变测试 | 测试质量验证、覆盖率≥70% | CI/发布阶段 |
runTests.sh - Mandatory
runTests.sh - 必备脚本
Build/Scripts/runTests.sh-s-pBuild/Scripts/runTests.sh-s-pGit Hooks
Git钩子
Verify: (see )
ls captainhook.json .git/hooks/pre-commit 2>/dev/null || echo "Run: composer install"references/captainhook-setup.md验证方式:执行以下命令 (详见)
ls captainhook.json .git/hooks/pre-commit 2>/dev/null || echo "Run: composer install"references/captainhook-setup.mdSetup and Running Tests
环境搭建与测试运行
bash
undefinedbash
undefinedSetup
环境搭建
<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
<skill-dir>/scripts/setup-testing.sh [--with-e2e] # 初始化测试环境
<skill-dir>/scripts/validate-setup.sh # 验证现有环境配置
<skill-dir>/scripts/generate-test.sh <Type> <Class> # 生成测试文件
Run tests (always via runTests.sh)
运行测试(必须通过runTests.sh执行)
Build/Scripts/runTests.sh -s unit # Unit tests
Build/Scripts/runTests.sh -s functional # Functional tests
Build/Scripts/runTests.sh -s phpstan # Static analysis
Build/Scripts/runTests.sh -s cgl # Coding guidelines
Build/Scripts/runTests.sh -s mutation # Mutation testing
Build/Scripts/runTests.sh -s ci # Full CI suite
After modifying a test, verify it fails before the fix and passes after.Build/Scripts/runTests.sh -s unit # 运行单元测试
Build/Scripts/runTests.sh -s functional # 运行功能测试
Build/Scripts/runTests.sh -s phpstan # 静态代码分析
Build/Scripts/runTests.sh -s cgl # 代码规范检查
Build/Scripts/runTests.sh -s mutation # 运行突变测试
Build/Scripts/runTests.sh -s ci # 运行完整CI测试套件
修改测试代码后,请先验证修复前测试是否失败,修复后是否通过。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) |
| 评估标准 | 要求 |
|---|---|
| 单元测试 | 必备,覆盖率≥70% |
| 功能测试 | 涉及数据库操作的场景必备 |
| 架构测试 | 必须使用phpat 以获得满分 |
| PHPStan | 级别10(最高级) |
References
参考文档
| Reference | Topic |
|---|---|
| UnitTestCase, mock vs stub discipline, naming conventions, FakeClock |
| FunctionalTestCase, CSV fixtures, TSFE limitations |
| PHPUnit 10+ migration, container reset |
| PSR-18 mocking, OAuth flows |
| Playwright, Page Object Model |
| Local multi-version matrix |
| runTests.sh, Docker orchestration |
| phpat, layer constraints |
| Multi-version CI failure analysis |
| GitHub Actions, GitLab CI |
| PHPStan, PHP-CS-Fixer, Rector |
| Infection, MSI |
| Interface extraction, mock strategies |
| Jest, frontend testing |
| CaptainHook git hooks for TYPO3 |
| E2E CI rules, troubleshooting |
All references in directory.
references/| 文档名称 | 主题 |
|---|---|
| 单元测试:UnitTestCase、Mock与Stub规范、命名约定、FakeClock |
| 功能测试:FunctionalTestCase、CSV测试数据、TSFE限制 |
| 功能测试模式:PHPUnit 10+迁移、容器重置 |
| 集成测试:PSR-18模拟、OAuth流程 |
| E2E测试:Playwright、页面对象模型 |
| DDEV测试:本地多版本测试矩阵 |
| 测试运行器:runTests.sh、Docker编排 |
| 架构测试:phpat、层级约束 |
| CI调试:多版本TYPO3 CI失败分析 |
| CI/CD:GitHub Actions、GitLab CI |
| 质量工具:PHPStan、PHP-CS-Fixer、Rector |
| 突变测试:Infection、MSI |
| TYPO3 v14最终类:接口提取、模拟策略 |
| JavaScript测试:Jest、前端测试 |
| CaptainHook Git钩子:TYPO3配置 |
| 执行规则:E2E CI规则、故障排查 |
所有参考文档位于目录下。
references/Explicit Content Triggers
特定内容触发规则
For CI test failures across TYPO3 versions, load .
references/ci-debugging.mdFor functional tests with frontend context (parseFunc, typoLink, TSFE), load .
references/functional-testing.md针对跨TYPO3版本的CI测试失败场景,请查阅。
references/ci-debugging.md针对涉及前端上下文(parseFunc、typoLink、TSFE)的功能测试,请查阅。
references/functional-testing.mdExternal Resources
外部资源
- TYPO3 Testing Documentation
- Tea Extension (reference implementation)
- phpat documentation
- Infection PHP documentation
- DDEV documentation
Contributing: https://github.com/netresearch/typo3-testing-skill