[Series Claude Code - Bài 4] Tự Động Hóa Testing, Debugging Và Quản Lý Git Toàn Diện
Chào anh em lập trình viên trên Viblo! Ở bài trước, chúng ta đã chứng kiến cách Claude Code "múa cọ" để refactor và viết code mới trực tiếp trong Terminal. Tuy nhiên, code chạy được trên máy dev chưa chắc đã là code đúng. Một lập trình viên chuyên nghiệp luôn cần kiểm tra lại qua các bộ Test Case.
Hôm nay, chúng ta sẽ nâng cấp quy trình làm việc lên một tầm cao mới: Giao phó toàn bộ việc chạy Test, bắt lỗi (Debug) và chuẩn hóa quy trình Git (Commit/Branch) cho Claude Code tự động xử lý.
1. Tự Động Hóa Chạy Test (Automated Testing)
Thay vì bạn phải liên tục mở một tab Terminal khác để gõ npm test, pytest, hay go test, bạn có thể ra lệnh cho Claude làm việc này ngay trong phiên chat. Điểm đặc biệt là Claude Code biết cách đọc kết quả trả về từ bảng điều khiển để biết test pass hay fail.
Kịch bản thực tế:
Bạn vừa yêu cầu Claude sửa logic tính thuế trong file TaxCalculator.js. Để đảm bảo logic mới không làm gãy các tính năng cũ, bạn ra lệnh:
Hãy chạy bộ test của file TaxCalculator và cho tôi biết kết quả.
Cách Claude vận hành:
- Claude sẽ tự động phân tích project để tìm lệnh test phù hợp (hoặc bạn có thể chỉ định:
Hãy chạy lệnh npm test -- tax.test.js). - AI xin quyền thực thi lệnh (
Approve [Y]). - Sau khi bạn đồng ý, Claude chạy lệnh, đọc output từ terminal và thông báo: "Có 4/5 test cases đã pass, 1 test case liên quan đến 'Tax for VIP' bị fail do trả về sai trị số".
2. Chu Trình Debug Thần Tốc: Tự Đọc Log – Tự Sửa Lỗi
Khi một test case bị fail hoặc hệ thống log ra một file lỗi dài ngoằng (Stack Trace), việc ngồi dò từng dòng code rất mất thời gian. Với Claude Code, quy trình Debug biến thành một chuỗi tự động hóa: Đọc lỗi -> Định vị file -> Sửa code -> Chạy lại test.
Cách ra lệnh cho Claude "Săn Bug": Khi thấy test fail ở bước trên, bạn chỉ cần gõ:
Hãy phân tích xem tại sao test case 'Tax for VIP' lại fail, sửa lại code cho đúng và chạy lại test cho đến khi tất cả đều pass (Green) thì thôi.
Quá trình AI Agent tự động xử lý:
- Bước 1: Claude đọc thông báo lỗi từ terminal để hiểu nguyên nhân (ví dụ:
Expected 10% nhưng nhận về 15%). - Bước 2: Tự động mở file code nguồn và file test lên so sánh logic.
- Bước 3: Tạo một patch sửa đổi code và hiển thị
git diff cho bạn duyệt. - Bước 4: Sau khi bạn
Approve, Claude sẽ tự động chạy lại lệnh test một lần nữa để xác nhận code đã hoàn toàn hết lỗi.
3. Quản Lý Quy Trình Git Tự Động Với Claude Code
Việc viết commit message sao cho rõ ràng, đúng chuẩn (như Conventional Commits) đôi khi khiến anh em lười biếng và hay gõ bừa kiểu fix bug, update, fixed... Claude Code sẽ giải quyết triệt để vấn đề này.
Ngay trong giao diện chat, bạn có thể thực hiện toàn bộ các tác vụ Git cơ bản:
Tạo Branch mới:
Hãy tạo cho tôi một git branch mới có tên là 'feature/tax-vip-fix'.
Viết Commit Message chuẩn chỉnh: Sau khi Claude đã sửa code và chạy test pass, bạn không cần thoát ra ngoài để commit. Hãy gõ:
Hãy xem lại toàn bộ các thay đổi hiện tại và tạo một git commit với message chuẩn Conventional Commits.
Claude sẽ quét qua git diff, hiểu được bản chất các file bạn vừa thay đổi và tự động generate ra một commit message cực kỳ chuyên nghiệp:
feat(tax): fix calculation logic for VIP customers
- Update tax rate from 15% to 10% in TaxCalculator.js
- Fix failing test case in tax.test.js
Closes #123
Nó sẽ hỏi bạn: Do you want to commit with this message? [Y/n]. Bạn chỉ cần bấm Y là xong!
4. Mẹo "Bảo Hộ" Khi Cho Claude Chạy Lệnh System
Vì Claude Code có khả năng tự động thực thi các lệnh terminal, hãy luôn lưu ý:
- Hạn chế dùng chế độ
Always allow([A]) đối với các lệnh lạ hoặc khi bạn đang làm việc ở các thư mục hệ thống quan trọng. - Nếu dự án của bạn có các câu lệnh test tương tác (yêu cầu nhập dữ liệu từ bàn phím lúc chạy), hãy báo trước cho Claude hoặc thiết lập các flag chạy non-interactive (ví dụ:
--passWithNoTestshoặc--watchAll=false).
Tạm kết Bài 4
Việc kết hợp khả năng viết code với năng lực tự chạy test và tự sửa lỗi theo vòng lặp giúp Claude Code trở thành một AI Agent độc lập và mạnh mẽ hơn rất nhiều so với các extension chat thông thường trên IDE. Nó giải phóng lập trình viên khỏi những tác vụ lặp đi lặp lại để tập trung vào tư duy kiến trúc.
Vậy là chúng ta đã đi qua hầu hết các tính năng thực chiến hàng ngày. Ở Bài học 5 (Bài cuối của series), mình sẽ chia sẻ về Các Option nâng cao, cách cấu hình file thiết lập bảo mật và quản lý chi phí token hiệu quả để anh em yên tâm "gắn bó" lâu dài với công cụ này.
Nếu thấy bài viết này giúp ích cho quy trình CI/CD cá nhân của bạn, hãy để lại 1 Upvote và để lại bình luận thảo luận nhé!
Cảm ơn các bạn đã theo dõi bài viết trên Viblo!
All rights reserved