feat: add --all --run autopilot mode for instant write-and-test execution

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 16:45:45 +07:00
parent 2045c856e9
commit 6fc49787a9
3 changed files with 55 additions and 41 deletions
+20 -10
View File
@@ -123,16 +123,26 @@ Trước khi viết bài test đầu tiên, hãy kiểm tra và cài đặt đ
Tùy vào nhu cầu thực tế, bạn chọn 1 trong 5 cách sau:
#### 🌟 Cách 1: 1 LỆNH DUY NHẤT PHỦ TOÀN BỘ FILE TRONG DỰ ÁN (`--all`)
Khi bạn muốn AI tự động viết test cho toàn bộ dự án từ A-Z mà đảm bảo không bỏ sót bất kỳ file nào:
#### 🌟 Cách 1: 1 LỆNH AUTOPILOT VIẾT TOÀN BỘ VÀ TỰ CHẠY TEST LUÔN (`--all --run`)
Khi bạn muốn AI tự động viết test cho toàn bộ dự án từ A-Z, **viết đến đâu tự chạy test đến đó và tự sửa lỗi nếu test fail**:
```text
/laravel-unit-test --all
/laravel-unit-test --all --run
# Hoặc:
/laravel-unit-test --autopilot
```
🎯 **Quy trình 4-trong-1 hoàn toàn tự động:**
1. **Tự động Setup**: Tự kiểm tra môi trường, cấu hình SQLite `:memory:` và tự cài packages nếu thiếu.
2. **Lập Manifest Kiểm Soát**: Quét toàn bộ `app/`, lập danh sách tất cả các class cần test (`tests/.test-manifest.json`).
3. **Viết & Chạy Test Ngay (Auto-Healing)**: Sinh xong file test nào -> Tự chạy ngay `./test-runner.sh --filter=<TênTest>`. Nếu fail -> Tự đọc lỗi và sửa lại test ngay cho đến khi PASS 100%.
4. **Nghiệm Thu Toàn Dự Án**: Tự chạy `./test-runner.sh --coverage` và in bảng tổng kết độ phủ code.
---
#### 🔹 Cách 2: Sinh Cho 1 Class & Chạy Test Ngay (`--run`)
Khi bạn chỉ muốn viết test cho 1 file và muốn AI test luôn file đó ngay lập tức:
```text
/laravel-unit-test app/Services/PaymentService.php --run
```
🎯 **Cơ chế cam kết không sót file (Full Coverage Engine):**
1. **Lập Manifest Kiểm Soát**: AI tự động quét toàn bộ `app/` (và `Modules/`), lọc ra tất cả các class có logic (Services, Actions, FormRequests, Rules, Jobs, Policies, Middlewares, Listeners, Observers, Repositories). Lập file danh sách kiểm soát `tests/.test-manifest.json` (ví dụ: Tổng cộng 42 files).
2. **Thực Thi Tuần Tự & Lưu Tiến Độ**: Duyệt tuần tự từng class (`[1/42]`, `[2/42]`,...), sinh test tương ứng và đánh dấu `[COMPLETED]`. Tránh hoàn toàn việc tràn token/context và có thể chạy tiếp nếu bị gián đoạn.
3. **Tự Động Chạy Thử & Tự Sửa Lỗi (Auto-Healing)**: Mỗi khi sinh xong 1 file test, AI lập tức chạy `./test-runner.sh --filter=<TênTest>`. Nếu fail -> Tự sửa lại code test ngay cho đến khi pass 100%.
4. **Nghiệm Thu Toàn Dự Án**: Chạy `./test-runner.sh --coverage` và in bảng tổng kết: `42/42 files covered, 100% Passed, Code Coverage: > 80%`.
---
@@ -278,8 +288,8 @@ sg-install-unit-testing.sh --force
| **Cập nhật bộ công cụ (1-Click)**| `sg-test-update` | Kéo bản mới nhất từ Git về máy mọi lúc |
| **Quét & Setup môi trường test** | `/laravel-test-setup` | Chạy trong Claude Code để kiểm tra cấu hình |
| **Tự động cài gói composer thiếu**| `/laravel-test-setup --install` | Cài `mockery`, `faker`, `paratest` vào container |
| **Sinh test TOÀN BỘ dự án (1 lệnh)**| `/laravel-unit-test --all` | Tự động lập manifest, sinh tuần tự, cam kết không sót file |
| **Sinh test cho 1 file** | `/laravel-unit-test app/.../Service.php`| Khi đang code 1 class đơn lẻ |
| **Autopilot: Viết xong test luôn**| `/laravel-unit-test --all --run` | 1 lệnh tự setup, viết test cả dự án, chạy test & tự fix |
| **Sinh test cho 1 file & test luôn**| `/laravel-unit-test app/.../Service.php --run`| Sinh test cho 1 class và chạy test kiểm tra ngay |
| **Sinh test cả thư mục** | `/laravel-unit-test app/Services/` | Khi cần phủ test cho cả 1 folder / module |
| **Quét dự án lớn chưa có test** | `/laravel-unit-test --untested` | Tìm các class thiếu test để sinh hàng loạt |
| **Sinh test cho Git Diff** | `/laravel-unit-test --changed` | Trước khi tạo Pull Request trên Git |