testing-symfony について
Symfony と PHP を扱うチーム向けのテスト戦略スキルです。Pest、PHPUnit、Playwright、Infection、PHPStan を用いたバックエンド、ブラウザー、ミューテーション、静的解析のテストを整理します。
主な機能
- 01Pest による単体・統合テスト
- 02Pest と Playwright によるブラウザーテスト
- 03Infection によるミューテーションテスト
- 04PHPStan Level 10 の静的解析
- 05テスト構成とカバレッジ要件
活用シーン
- 01Symfony バックエンドのテストスイート設計
- 02ブラウザーベースの E2E テスト追加
- 03ミューテーションテストによるテスト品質測定
- 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/Integration | Pest 5(PHPUnit 13、PHP 8.4+、アーキテクチャテスト) | Symfony のバックエンドテスト |
| Browser/E2E | Pest 5 Browser Testing(Playwright ネイティブ) | 統合されたフロントエンドテスト |
| Mutation | Infection | テストの品質(MSI >= 80%) |
| Static Analysis | PHPStan 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 のモック |
| Integration | KernelTestCase、フィクスチャが読み込まれていること、テスト用 DB |
| Browser | Pest 5 のネイティブ Playwright、実際の UI に対するアサーション |
| Arch | pest()->arch() — 名前空間、依存関係、禁止事項 |
| Mutation | vendor/bin/infection --threads=4、MSI >= 80 |
詳細、コード例、設定、チェックリストについては、REFERENCE.md を参照してください。
コメント
Markdown 対応