docs: standardize pro 3-step testing workflow and add SonarQube guide
- Update README.md with recommended 3-step decoupled workflow (audit -> batch write -> terminal run) - Add docs/10-sonarqube-100-percent-coverage-guide.md covering line/branch coverage and Clover XML export - Update /laravel-unit-test skill definition prioritizing decoupled batch generation - Fix remote installer URLs to official Smartgift Git server Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,47 +8,53 @@ description: Phân tích một class mã nguồn PHP Laravel bất kỳ và tự
|
||||
Skill này là công cụ chính để tự động tạo ra file Unit Test cho bất kỳ class nào trong dự án Laravel (Service, Action, Controller, Job, FormRequest, Policy, Rule,...).
|
||||
|
||||
## Cách kích hoạt
|
||||
Người dùng có thể kích hoạt linh hoạt theo các chế độ (từ 1 lệnh duy nhất cho toàn bộ dự án đến từng file đơn lẻ):
|
||||
Người dùng có thể kích hoạt linh hoạt theo các chế độ (từ quy trình chuẩn Pro 3 bước cho dự án lớn đến file đơn lẻ):
|
||||
|
||||
1. **🌟 Chế độ Autopilot Khép Kín: Viết Xong Chạy Test Luôn (`--all --run` hoặc `--autopilot`)**:
|
||||
### 🏆 QUY TRÌNH CHUẨN PRO CHO DỰ ÁN LỚN (KHUYÊN DÙNG NHẤT):
|
||||
Để tránh bị tràn context token và đảm bảo viết sâu 100% từng nhánh SonarQube, hãy tách biệt 2 pha: **PHA VIẾT (Generation)** và **PHA CHẠY (Execution)**:
|
||||
|
||||
1. **Bước 1: Quét bản đồ dự án (`--untested`)**:
|
||||
```text
|
||||
/laravel-unit-test --untested
|
||||
```
|
||||
*Liệt kê danh sách class chưa có test theo độ ưu tiên: Services/Actions -> Requests/Rules -> Jobs/Policies.*
|
||||
|
||||
2. **Bước 2: Viết test tập trung theo từng tầng (CHỈ VIẾT, CHƯA CHẠY TEST)**:
|
||||
```text
|
||||
/laravel-unit-test app/Services/
|
||||
# Sau khi xong, viết tiếp:
|
||||
/laravel-unit-test app/Actions/
|
||||
/laravel-unit-test app/Http/Requests/
|
||||
```
|
||||
*AI dồn 100% token tập trung sinh test sâu, đầy đủ Happy Path, Edge Cases, Exception và Branch Coverage.*
|
||||
|
||||
3. **Bước 3: Chạy test đồng loạt ngoài Terminal & Nghiệm thu**:
|
||||
```bash
|
||||
./test-runner.sh --coverage
|
||||
```
|
||||
*Chạy 1 lần duy nhất trên In-memory SQLite siêu tốc, đo độ phủ và xuất file báo cáo.*
|
||||
|
||||
---
|
||||
|
||||
### ⚡ CÁC CHẾ ĐỘ TIỆN ÍCH KHÁC:
|
||||
|
||||
4. **Chế độ Autopilot Khép Kín: Viết & Chạy Test Ngay (`--all --run` hoặc `--autopilot`)**:
|
||||
```text
|
||||
/laravel-unit-test --all --run
|
||||
# Hoặc:
|
||||
/laravel-unit-test --autopilot
|
||||
```
|
||||
*Chỉ với 1 lệnh duy nhất, Agent sẽ thực thi trọn vẹn quy trình 4-trong-1:*
|
||||
- **Tự động Setup**: Kiểm tra dependencies & SQLite in-memory, tự cài đặt gói thiếu.
|
||||
- **Tự động Quét**: Lập manifest toàn bộ class trong dự án `app/`.
|
||||
- **Tự động Viết & Test Ngay**: Sinh test đến đâu -> Chạy test `./test-runner.sh` ngay đến đó.
|
||||
- **Tự động Sửa Lỗi (Auto-Healing)**: Nếu test đỏ (Fail) -> Tự đọc log lỗi và sửa lại test cho đến khi XANH (Pass 100%).
|
||||
- **Nghiệm thu**: Đo Code Coverage và in bảng tổng kết cuối cùng.
|
||||
*Dành cho dự án vừa và nhỏ: AI tự lập manifest, viết đến đâu chạy `./test-runner.sh` ngay đến đó, tự động sửa lỗi (Auto-Healing) nếu test fail.*
|
||||
|
||||
2. **Chế độ Viết Cho 1 File & Test Luôn (`--run`)**:
|
||||
5. **Chế độ Viết Cho 1 File & Test Luôn (`--run`)**:
|
||||
```text
|
||||
/laravel-unit-test app/Services/PaymentService.php --run
|
||||
```
|
||||
*Sinh test cho class và lập tức chạy thử để xác nhận Pass 100% trước khi hoàn thành.*
|
||||
|
||||
3. **Chế độ Hàng loạt theo Thư mục (Batch Directory Mode)**:
|
||||
6. **Chế độ Theo Git Diff (Dành Cho Pull Request)**:
|
||||
```text
|
||||
/laravel-unit-test app/Services/ --run
|
||||
# Hoặc toàn bộ Actions:
|
||||
/laravel-unit-test app/Actions/ --run
|
||||
/laravel-unit-test --changed
|
||||
```
|
||||
|
||||
4. **Chế độ Theo Module / DDD (Module Mode)**:
|
||||
```text
|
||||
/laravel-unit-test Modules/Order/ --run
|
||||
# Hoặc:
|
||||
/laravel-unit-test app/Domains/Payment/ --run
|
||||
```
|
||||
|
||||
5. **Chế độ Theo Git Diff (Changed Files Mode - Dành Cho Pull Request)**:
|
||||
```text
|
||||
/laravel-unit-test --changed --run
|
||||
```
|
||||
|
||||
6. **Chế độ File đơn lẻ (Single File Mode)**:
|
||||
7. **Chế độ File đơn lẻ**:
|
||||
```text
|
||||
/laravel-unit-test app/Services/PaymentService.php
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user