关于 typo3-testing
typo3-testing 面向改进 TYPO3 扩展测试套件的开发者,先生成评估报告,再提供测试类型指导、脚本和 CI 参考资料。
主要功能
- 01涵盖 73 项以上检查点的评估
- 02测试类型选择指导
- 03测试环境配置与验证脚本
- 04单元、功能及架构测试指导
- 05CI 与测试故障参考资料
适用场景
- 01评估现有 TYPO3 测试套件
- 02规划数据库交互代码的测试
- 03配置 runTests.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 扩展测试参考。
测试类型选择
| 类型 | 适用场景 | 速度 |
|---|---|---|
| 单元测试 | 纯逻辑、无数据库、验证器、实用工具 | 快 |
| 功能测试 | 数据库交互、仓库、控制器 | 中 |
| 架构测试 | 分层约束、依赖规则(phpat) | 快 |
| 端到端测试(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
修复前验证测试会失败,修复后验证测试通过。Bug 修复须遵循 references/tdd-discipline.md 中严格的 TDD 循环——没有粘贴的输出,不得声称“已测试/已验证”。
评分要求
必须编写单元测试(70%+ 覆盖率)。数据库操作必须编写功能测试。架构评分项必须使用 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、NormalizedParamsTypeError、backupGlobals→test-environment-guards.md - 带有 try/catch 的事件分发器测试 →
event-dispatch-testing.md - Meta-package、typo3-ci-workflows、no-plugins →
ci-workflows-meta-package.md - 虚假密钥、推送保护、cs-fixer concat →
synthetic-secret-fixtures.md - 标签已被占用、打标签前验证 →
release-workflow-validation.md - 后端模块 500 错误/ViewHelper 命名空间错误/画布无限运行 →
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
Copyright (c) Netresearch DTT GmbH — 方法论与最佳实践(MIT / CC-BY-SA-4.0)
特别感谢 Netresearch DTT GmbH 为 TYPO3 社区慷慨贡献开源成果,助力塑造了这一系列技能。 由 webconsulting.at 为这一系列技能改编