mcpField
T
testing-symfony

testing-symfony

github.com/thebeardedbearsas测试与质量107205 次安装今天更新
代码仓库

关于 testing-symfony

面向使用 Symfony 和 PHP 的团队,提供测试策略指南。内容围绕 Pest、PHPUnit、Playwright、Infection 和 PHPStan,涵盖后端、浏览器、变异及静态分析测试。

主要功能

  1. 01使用 Pest 进行单元与集成测试
  2. 02使用 Pest 和 Playwright 进行浏览器测试
  3. 03使用 Infection 进行变异测试
  4. 04使用 PHPStan Level 10 静态分析
  5. 05测试结构与覆盖率要求

适用场景

  1. 01规划 Symfony 后端测试套件
  2. 02添加基于浏览器的端到端测试
  3. 03通过变异测试衡量测试质量
  4. 04落实架构与静态分析规则

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thebeardedbearsas/claude-craft --skill testing-symfony

安装后在 Claude Code 中输入/testing-symfony确认已加载。

附带文件REFERENCE.md

详细介绍

Symfony 8.1 / PHP 8.5 测试策略

版本: Symfony 8.1+ | PHP 8.5 | Pest 5 | PHPUnit 13 | Playwright

Pest 5(PHP 8.4+、PHPUnit 13)原生集成了浏览器测试(Playwright):无需再使用 Panther 进行 E2E 测试。Behat(4.x,仍在维护)依然适用于 Gherkin BDD;否则,建议使用描述性 Pest 测试。

2026 年推荐技术栈

类型工具用途
单元/集成Pest 5(PHPUnit 13、PHP 8.4+、架构测试)Symfony 后端测试
浏览器/E2EPest 5 Browser Testing(原生 Playwright)集成式前端测试
变异测试Infection测试质量(MSI >= 80%)
静态分析PHPStan Level 10静态检查

来源: Pest 5 升级指南、Infection

不可妥协的要求

  • 覆盖率 >= 80%(行 + 分支)
  • 通过 Infection 达到变异分数指标(MSI)>= 80%
  • PHPStan Level 10——不得使用未经说明的 mixed
  • 架构测试:领域不依赖基础设施
  • 通过 doctrine/data-fixtures 管理 Fixture——不得硬编码数据
  • 每个测试均采用 AAA(Arrange-Act-Assert)模式
  • 浏览器测试放在 tests/Browser/,单元测试放在 tests/Unit/,功能测试放在 tests/Feature/

按类型划分的检查清单

类型验证
单元完全隔离,不使用 DB,使用 Prophecy/Mockery 模拟对象
集成KernelTestCase,已加载 Fixture,使用测试 DB
浏览器Pest 5 原生 Playwright,针对真实 UI 进行断言
架构pest()->arch()——命名空间、依赖关系、禁止项
变异测试vendor/bin/infection --threads=4,MSI >= 80

完整详情、代码示例、配置和检查清单:请参阅 REFERENCE.md

评论

支持 Markdown