mcpField
T
testing-symfony

testing-symfony

github.com/thebeardedbearsasテスト・品質107205 回インストール今日更新
リポジトリ

testing-symfony について

Symfony と PHP を扱うチーム向けのテスト戦略スキルです。Pest、PHPUnit、Playwright、Infection、PHPStan を用いたバックエンド、ブラウザー、ミューテーション、静的解析のテストを整理します。

主な機能

  1. 01Pest による単体・統合テスト
  2. 02Pest と Playwright によるブラウザーテスト
  3. 03Infection によるミューテーションテスト
  4. 04PHPStan Level 10 の静的解析
  5. 05テスト構成とカバレッジ要件

活用シーン

  1. 01Symfony バックエンドのテストスイート設計
  2. 02ブラウザーベースの E2E テスト追加
  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)がネイティブに統合されているため、E2E に Panther は不要です。Behat(4.x、メンテナンス継続中)は Gherkin による BDD に引き続き適しています。それ以外の場合は、説明的な Pest テストを推奨します。

2026年の推奨スタック

種類ツール用途
Unit/IntegrationPest 5(PHPUnit 13、PHP 8.4+、アーキテクチャテスト)Symfony のバックエンドテスト
Browser/E2EPest 5 Browser Testing(Playwright ネイティブ)統合されたフロントエンドテスト
MutationInfectionテストの品質(MSI >= 80%)
Static AnalysisPHPStan Level 10静的検証

ソース: Pest 5 Upgrade Guide、Infection

妥協できない不変条件

  • カバレッジ >= 80%(行 + 分岐)
  • Infection による Mutation Score Indicator(MSI)>= 80%
  • PHPStan Level 10 — 正当な理由のない mixed は禁止
  • アーキテクチャテスト:ドメインはインフラストラクチャから独立
  • フィクスチャには doctrine/data-fixtures を使用 — ハードコードされたデータは禁止
  • すべてのテストで AAA(Arrange-Act-Assert)パターンを使用
  • ブラウザテストは tests/Browser/、ユニットテストは tests/Unit/、フィーチャーテストは tests/Feature/

種類別チェックリスト

種類確認項目
Unit完全に分離されていること、DB を使用しないこと、Prophecy/Mockery のモック
IntegrationKernelTestCase、フィクスチャが読み込まれていること、テスト用 DB
BrowserPest 5 のネイティブ Playwright、実際の UI に対するアサーション
Archpest()->arch() — 名前空間、依存関係、禁止事項
Mutationvendor/bin/infection --threads=4、MSI >= 80

詳細、コード例、設定、チェックリストについては、REFERENCE.md を参照してください。

コメント