2045c856e9
- Add 10 core testing guides (setup, AAA principles, PHPUnit/Pest, mocking, anti-patterns, PHP 8.4+, debugging, data factories, advanced edge cases) - Add 13 component testing guides covering all Laravel layers - Add standard templates for PHPUnit 10/11 and Pest v2/v3 including ArchitectureTest - Add Docker smart test runner, dependency installer, and CI/CD templates (GitHub Actions, GitLab CI) - Add 4 Claude Code skills (laravel-test-setup, laravel-unit-test with --all mode, laravel-test-review, laravel-mock-helper) - Add single unified installer script (sg-install-unit-testing.sh) with global support, CLI runners, and 1-click updater (sg-test-update) - Add comprehensive documentation (README.md, USAGE-GUIDE.md) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.4 KiB
4.4 KiB
name, description
| name | description |
|---|---|
| laravel-test-setup | Tự động quét kiểm tra môi trường, dependencies, database config và docker để chuẩn bị viết Unit Test cho bất kỳ dự án Laravel nào. |
Skill: Laravel Test Environment Setup & Health Check
Skill này chịu trách nhiệm chuẩn bị "Bước 0" cho dự án Laravel trước khi bắt đầu viết bất kỳ Unit Test nào.
Cách kích hoạt
- Chế độ kiểm tra (Dry-run / Health-Check):
/laravel-test-setup - Chế độ tự động cài đặt gói thiếu (Auto-Install Mode):
/laravel-test-setup --install
Quy trình thực hiện (Execution Workflow)
Khi người dùng kích hoạt lệnh /laravel-test-setup, Agent sẽ tuần tự thực hiện các bước sau:
Bước 1: Quét composer.json & Nhận Diện Thư Viện Cần Thiết
- Đọc file
composer.jsontại thư mục gốc của dự án. - Xác định:
- Phiên bản PHP & Laravel: PHP 8.0 - 8.4+, Laravel 9.x - 13.x
- Test Framework:
phpunit/phpunithaypestphp/pest - Mocking & Fake:
mockery/mockery,fakerphp/faker - Performance & Coverage:
brianium/paratest,nunomaduro/collision
- Nếu phát hiện thiếu thư viện:
- Nếu có cờ
--installhoặc người dùng đồng ý: Agent tự động kích hoạt lệnh cài đặt qua môi trường tương ứng (Sail / Docker Compose / Local Composer):# Nếu dùng Sail: ./vendor/bin/sail composer require --dev mockery/mockery fakerphp/faker --with-all-dependencies # Nếu dùng Docker Compose (service app): docker compose exec -T app composer require --dev mockery/mockery fakerphp/faker --with-all-dependencies # Nếu chạy Local: composer require --dev mockery/mockery fakerphp/faker --with-all-dependencies - Hoặc chạy script
./setup-test-deps.shcó sẵn.
- Nếu có cờ
Bước 2: Kiểm tra cấu hình Testing Database & Drivers
- Kiểm tra sự tồn tại của
phpunit.xml(hoặcphpunit.xml.dist) hoặc.env.testing. - Xác thực cấu hình thẻ
<php>trongphpunit.xml:DB_CONNECTIONphải làsqlitevàDB_DATABASElà:memory:(hoặc kết nối DB test riêng an toàn).CACHE_STOREhoặcCACHE_DRIVERphải làarray.QUEUE_CONNECTIONphải làsync.MAIL_MAILERphải làarray.BCRYPT_ROUNDSnên là4.
- Nếu chưa có hoặc cấu hình đang trỏ vào database dev thật:
- Cảnh báo người dùng về nguy cơ mất dữ liệu dev.
- Đề xuất tạo
.env.testinghoặc cập nhậtphpunit.xmldựa trên template có sẵn tạitemplates/configs/.
Bước 3: Phát hiện Môi trường Docker / Runtime
- Kiểm tra
./vendor/bin/sail-> Nếu có Sail, ưu tiên lệnh./vendor/bin/sail test. - Kiểm tra
docker-compose.yml-> Dò tìm service PHP (app,php,backend,...) -> Đề xuất lệnhdocker compose exec -T <service> php artisan test. - Nếu chạy Local: Kiểm tra xem extension
pdo_sqliteđã được bật chưa bằngphp -m | grep sqlite.
Bước 4: Chạy Smoke Test (Kiểm tra thử nghiệm)
- Chạy thử nghiệm lệnh test hiện có của project (ví dụ:
php artisan test --filter=ExampleTest). - Nếu test PASS: Báo cáo môi trường đã sẵn sàng 100% để sinh Unit Test.
- Nếu test FAIL hoặc văng lỗi (ví dụ: thiếu APP_KEY, thiếu SQLite driver, lỗi database): Đưa ra chẩn đoán chính xác nguyên nhân và lệnh khắc phục.
Mẫu báo cáo đầu ra cho người dùng:
### 📋 BÁO CÁO MÔI TRƯỜNG TEST (HEALTH CHECK)
1. **Framework & Dependencies**:
- Laravel: 11.2.0 | PHP: 8.3
- Test Runner: Pest PHP v2.34
- Mocking: Mockery 1.6 (Đã cài)
- Faker: FakerPHP 1.23 (Đã cài)
2. **Cấu hình Môi trường**:
- DB Test: SQLite (:memory:) [OK - An toàn]
- Cache / Queue / Mail: Array / Sync [OK - Tối ưu]
- BCRYPT_ROUNDS: 4 [OK - Tốc độ cao]
3. **Môi trường thực thi**:
- Docker Service: `app` container đang hoạt động
- Lệnh chạy test chuẩn: `docker compose exec -T app php artisan test`
4. **Kết quả Smoke Test**:
- Trạng thái: ✅ PASSED (2 tests, 4 assertions)
🎉 **Môi trường đã hoàn toàn sẵn sàng cho việc sinh Unit Test!**