typo3-testing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

TYPO3 Testing Skill

TYPO3 测试技能指南

References for TYPO3 extension testing.
TYPO3扩展测试参考文档。

Test Type Selection

测试类型选择

TypeUse WhenSpeed
UnitPure logic, no DB, validators, utilitiesFast
FunctionalDB interactions, repositories, controllersMedium
ArchitectureLayer constraints, dependency rules (phpat)Fast
E2E (Playwright)User workflows, browser, accessibilitySlow
IntegrationHTTP client, API mocking, OAuth flowsMedium
MutationTest quality verification, 70%+ coverageCI/Release
类型适用场景速度
单元测试纯逻辑代码、无数据库交互、验证器、工具类
功能测试数据库交互、仓库类、控制器中等
架构测试层级约束、依赖规则(phpat)
端到端测试(Playwright)用户工作流、浏览器操作、可访问性
集成测试HTTP客户端、API模拟、OAuth流程中等
突变测试测试质量验证、覆盖率≥70%CI/发布阶段

runTests.sh - Mandatory

runTests.sh - 必备脚本

Build/Scripts/runTests.sh
is mandatory for all Netresearch TYPO3 extensions. Must be executable, support
-s
(suite) and
-p
(PHP version) flags.
Build/Scripts/runTests.sh
是所有Netresearch TYPO3扩展的必备脚本。必须具备可执行权限,支持
-s
(测试套件)和
-p
(PHP版本)参数。

Git Hooks

Git钩子

Verify:
ls captainhook.json .git/hooks/pre-commit 2>/dev/null || echo "Run: composer install"
(see
references/captainhook-setup.md
)
验证方式:执行以下命令
ls captainhook.json .git/hooks/pre-commit 2>/dev/null || echo "Run: composer install"
(详见
references/captainhook-setup.md

Setup and Running Tests

环境搭建与测试运行

bash
undefined
bash
undefined

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

评分要求

CriterionRequirement
Unit testsRequired, 70%+ coverage
Functional testsRequired for DB operations
Architecture testsphpat required for full points
PHPStanLevel 10 (max)
评估标准要求
单元测试必备,覆盖率≥70%
功能测试涉及数据库操作的场景必备
架构测试必须使用phpat 以获得满分
PHPStan级别10(最高级)

References

参考文档

ReferenceTopic
unit-testing.md
UnitTestCase, mock vs stub discipline, naming conventions, 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
captainhook-setup.md
CaptainHook git hooks for TYPO3
enforcement-rules.md
E2E CI rules, troubleshooting
All references in
references/
directory.
文档名称主题
unit-testing.md
单元测试:UnitTestCase、Mock与Stub规范、命名约定、FakeClock
functional-testing.md
功能测试:FunctionalTestCase、CSV测试数据、TSFE限制
functional-test-patterns.md
功能测试模式:PHPUnit 10+迁移、容器重置
integration-testing.md
集成测试:PSR-18模拟、OAuth流程
e2e-testing.md
E2E测试:Playwright、页面对象模型
ddev-testing.md
DDEV测试:本地多版本测试矩阵
test-runners.md
测试运行器:runTests.sh、Docker编排
architecture-testing.md
架构测试:phpat、层级约束
ci-debugging.md
CI调试:多版本TYPO3 CI失败分析
ci-cd.md
CI/CD:GitHub Actions、GitLab CI
quality-tools.md
质量工具:PHPStan、PHP-CS-Fixer、Rector
mutation-testing.md
突变测试:Infection、MSI
typo3-v14-final-classes.md
TYPO3 v14最终类:接口提取、模拟策略
javascript-testing.md
JavaScript测试:Jest、前端测试
captainhook-setup.md
CaptainHook Git钩子:TYPO3配置
enforcement-rules.md
执行规则:E2E CI规则、故障排查
所有参考文档位于
references/
目录下。

Explicit Content Triggers

特定内容触发规则

For CI test failures across TYPO3 versions, load
references/ci-debugging.md
.
For 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.md

External Resources

外部资源