fswatch กับการรันคำสั่ง phpunit อัตโนมัติ

ลองมาใช้ fswatch (file system watch มั๊ง ^^) ซึ่งเป็นโปรแกรมที่คอยจำตาดูการเปลี่ยนแปลงของไฟล์หรือโฟลเดอร์ที่เราระบุไว้ร่วมกับ PHPUnit ดูหน่อย หลังจากที่ได้ใช้ Grunt watch เพื่อรันคำสั่ง PHPUnit แล้ว ก็เจอปัญหานิดหน่อยจริงๆ ก็ไม่ใช่ปัญหาอะไรมากมายนะครับ (ได้คืบจะเอาศอก) มันจะต้องเข้าไปแก้ไขไฟล์ Gruntfile.js เพื่อเปลี่ยนโฟลเดอร์งานตลอดเลย อีกอย่างก็ต้องติดตั้ง node package ทุกโปรเจ็คอีก ก็เลยหาวิธีใหม่ ตามประสาคนไม่ชอบจำเจ ^^

มาเริ่มกันเลยดีกว่าก่อนอื่นเพื่อนก็ต้องติดตั้ง fswatch ก็ก่อนเลยครับ หลังจากติดตั้งเสร็จแล้ว รันคำสั่งเพื่อรอดูการเปลี่ยนแปลงของไฟล์ โดยเข้าไปที่โฟลเดอรืของโปรเจ็คเราแล้วรันคำสั่งดังนี้ครับ

fswatch -o . | xargs -I{} phpunit --colors .

ในตัวอย่างผมก็จะเป็นโฟลเดอร์ fswatch-phpunit-demo หลังจากรันเสร็จ ถ้าเรามีการแก้ไขไฟล์ในโฟลเดอร์ PHPUnit ก็จะถูกรันอัตโนมัติ

โครงสร้างไฟล์ตัวอย่าง

เท่านี้เราก็ไม่ต้องมานั่งติดตั้ง node package  ทุกครั้งที่เราสร้างโปรเจ็คแล้วครับ ^^