Tested #Phalex multi modules with @phpunit, only one phpunit.xml config file. Thank to #ZF2, I learned more thing from it.
— Trần Minh Quang (@tmquang6805) March 16, 2015
Sau khi mình release project Phalex của mình thì tới nay đã khá lâu (cũng gần 4 tháng rồi) và mình cũng bắt đầu code vài dự án với Phalex. Một trong những dự án dựa trên Phalex 5SOnline - đây là một dự án mình làm cho công ty HDViet. Tuy nhiên, bên cạnh đó mình vẫn âm thâm code một dự án riêng của cá nhân, hy vọng sẽ trình làng mọi người vào giữa năm nay.Dự án của HDViet thì phải chạy cho nhanh nên không có test (TDD) cho dự án, còn dự án cá nhân thì chắc chắn là có. Phalex ra đời nhằm mục đích là multi modules, nên khi làm việc với nó, mình cũng mất khá nhiều thời gian khi chạy test cho từng module. May mắn thay, vô tình hôm nay đọc cách test của Zend Framework 2, nên mình đã thử áp dụng vào project và đã thành công, nay mình chia sẽ lại với các bạn nếu ai đó có dùng Phalex để code
Cấu hình file phpunit.xml
Đầu tiên hết chính là cần file cấu hình PHPUnit test, cái này thì ai từng làm với PHPUnit thì đều không thấy gì là lạ cả. Trong cấu hình này, mình muốn test cho 2 modules là Application và Core.
Cài đặt Bootstrap
Tiếp theo đó, chúng ta cần cấu hình một file Bootstrap.php và đặt tại folder module/Application/tests (xem trong phần cấu hình phpunit.xml). File bootstrap này nhằm mục đích autoload các module cần test, các test case namespace. Mình embed file Bootstrap.php tại đây, mọi người có thể tham khảoHưởng thụ kết quả
Sau khi cài đặt xong, chúng ta chỉ cần đứng ngay thư mục gốc của project, chạy lệnh phpunit là xong. Theo cấu hình trong file phpunit.xml của mình bên trên, thì nó sẽ có phần code coverage. Và kết qủa như sauPHPUnit code coverage |
Phalex - Library build on top PhalconPHP Framwork.
Cũng đang tính viết PHPUnit cho prọject Phalcon mà có cái setup này khỏe quá, thanks. Bạn có thể dích sang tiếng anh rồi share nó trên http://phalcontip.com, được không ?
ReplyDeleteThanks
Cảm ơn bạn ghé qua tệ xá.
DeleteCái này nó không thuộc Phalcon thuần, mà nó là Phalex - một project của mình dựa trên Phalcon. Nên cũng không biết có áp dụng cho Phalcon thuần được không :)
Bạn có thể tham khảo chi tiết Phalex tại đây:
https://github.com/tmquang6805/phalex
OK, mình sẽ check nó
Delete