用途:该技能用于 TYPO3 项目的测试编写与测试套件增强。核心原则是把缺陷报告先转成失败测试:依据报告中的输入与预期输出写测试,运行并确认它因报告所述原因失败,再修复;修复后补写的测试只能证明代码当前行为。模板或渲染输出的改动不能只靠单元测试覆盖,因为单元套件不渲染 Fluid 模板,需用功能测试调用渲染路径并断言渲染出的字符串。Fluid 对内联表达式解析失败不会抛异常,而是原样输出,因此只断言“未抛异常”会误通过;内联表达式嵌套时应改用标签形式(<f:if>)或在 PHP 中计算后传入。
主要能力:提供测试类型选择指引(单元、功能、架构、E2E/Playwright、集成、变异),要求单元测试覆盖率 70%+、数据库操作需功能测试、架构约束用 phpat、PHPStan level 10。增强既有测试套件时先运行 automated-assessment typo3-testing 生成基于 73+ 检查点的差距报告,并作为任务清单,先解决机械性失败再手写测试。
使用方式:从技能目录执行 scripts/setup-testing.sh [--with-e2e]、scripts/validate-setup.sh、scripts/generate-test.sh <Type> <Class>;运行测试统一通过 Build/Scripts/runTests.sh -s unit|functional|phpstan|cgl|mutation|ci,该脚本必须可执行并支持 -s 与 -p。Git 钩子默认使用 Build/captainhook.json,声明于 composer.json 的 extra.captainhook.config。
适用场景:缺陷复现、模板或渲染输出变更验证、覆盖率与变异测试提升、企业级测试要求、CI 失败排查等。限制:不适用于从零开始、编写某个具体测试或调试失败;资料未提供价格、平台支持范围等其它信息。