จะดีกว่าไหมถ้าการทดสอบ PHPUnit ของคุณจะถูกรันอีกครั้งโดยอัตโนมัติทุกครั้งที่คุณเปลี่ยนโค้ด แพ็คเกจนี้สามารถทำเช่นนั้นได้อย่างแน่นอน
เมื่อติดตั้งแพ็คเกจแล้ว คุณสามารถทำได้:
phpunit-watcher watch
นี่คือลักษณะที่ปรากฏ:
การดำเนินการนี้จะทำการทดสอบและรันใหม่ทุกครั้งที่มีการแก้ไขไฟล์ในไดเร็กทอรี app
, src
หรือ tests
ต้องการส่งข้อโต้แย้งไปยัง PHPUnit หรือไม่? ไม่มีปัญหา เพียงแค่แก้ไข:
phpunit-watcher watch --filter=it_can_run_a_single_test
ในการพูดคุยที่ยอดเยี่ยมของเขาที่ Laracon EU 2017 Amo Chohan แสดงให้เห็นการทำงานของผู้เฝ้าดู phpunit
เราลงทุนทรัพยากรจำนวนมากเพื่อสร้างแพ็คเกจโอเพ่นซอร์สที่ดีที่สุดในระดับเดียวกัน คุณสามารถสนับสนุนเราได้โดยการซื้อหนึ่งในผลิตภัณฑ์ที่ต้องชำระเงินของเรา
เราขอขอบคุณเป็นอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณถึงเรา โดยระบุว่าคุณใช้แพ็คเกจใดของเรา คุณจะพบที่อยู่ของเราในหน้าติดต่อของเรา เราเผยแพร่โปสการ์ดที่ได้รับทั้งหมดบนวอลล์โปสการ์ดเสมือนของเรา
คุณสามารถติดตั้งแพ็คเกจนี้ได้ทั่วโลกเช่นนี้
composer global require spatie/phpunit-watcher
หลังจากนั้น phpunit-watcher watch
จะสามารถรันในไดเร็กทอรีใดก็ได้ในระบบของคุณ
หรือคุณสามารถติดตั้งแพ็คเกจภายในเครื่องเป็นการพึ่งพา dev ในโปรเจ็กต์ของคุณ
composer require spatie/phpunit-watcher --dev
ติดตั้งในเครื่องคุณสามารถรันด้วย vendor/bin/phpunit-watcher watch
ตัวอย่างทั้งหมดถือว่าคุณได้ติดตั้งแพ็คเกจทั่วโลก หากคุณเลือกใช้การติดตั้งในเครื่อง ให้เพิ่ม vendor/bin/
ทุกที่ที่มีการกล่าวถึง phpunit-watcher
คุณสามารถเริ่มต้นผู้ดูด้วย:
phpunit-watcher watch
การดำเนินการนี้จะดำเนินการทดสอบและรันใหม่ทุกครั้งที่มีการแก้ไขไฟล์ในไดเร็กทอรี src
หรือ tests
ต้องการส่งข้อโต้แย้งไปยัง PHPUnit หรือไม่? ไม่มีปัญหา เพียงแค่แก้ไข:
phpunit-watcher watch --filter=it_can_run_a_single_test
เมื่อรัน phpunit-watcher
จากสคริปต์ Composer คุณอาจต้องเปลี่ยนเส้นทางอินพุตเพื่อให้คำสั่งแบบโต้ตอบทำงานและปิดใช้งานการหมดเวลาเริ่มต้น:
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
บน Windows ปัจจุบันยังไม่รองรับ TTY ดังนั้นการโต้ตอบใดๆ จึงถูกปิดใช้งาน ในขณะที่ดูการเปลี่ยนแปลงใช้งานได้ จะต้องระบุอาร์กิวเมนต์ใด ๆ สำหรับ PHPUnit เมื่อเริ่มเรียก phpunit-watcher
ลักษณะการทำงานของเครื่องมือบางประการสามารถแก้ไขได้ ไฟล์สำหรับตัวเลือกอาจมีชื่อว่า .phpunit-watcher.yml
, phpunit-watcher.yml
หรือ phpunit-watcher.yml.dist
เครื่องมือจะค้นหาไฟล์ตามลำดับนั้น
หากไม่มีไฟล์กำหนดค่าอยู่ในไดเร็กทอรีโปรเจ็กต์ เครื่องมือจะตรวจสอบว่ามีไฟล์อยู่ในไดเร็กทอรีหลักของไดเร็กทอรีโปรเจ็กต์หรือไม่
นี่คือเนื้อหาตัวอย่างบางส่วน อ่านต่อเพื่อดูคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกทั้งหมด
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
คุณสามารถปรับแต่งไดเร็กทอรีที่กำลังรับชมได้โดยการสร้างไฟล์ชื่อ .phpunit-watcher.yml
ในไดเร็กทอรีโปรเจ็กต์ของคุณ นี่คือเนื้อหาตัวอย่างบางส่วน:
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
ดูเอกสารสำหรับ Finder สำหรับรายละเอียดเพิ่มเติม
หากคุณประสบกับความล่าช้าด้านประสิทธิภาพกับพื้นที่เก็บข้อมูลขนาดใหญ่ ให้ลองเพิ่มรายการ exclude
สำหรับไดเรกทอรีย่อยขนาดใหญ่ใดๆ ที่คุณไม่จำเป็นต้องรับชม การเปิดใช้งานตัวเลือก ignore...
ก็มีประโยชน์เช่นกัน สิ่งสำคัญคือต้องแน่ใจว่าคุณใช้มาสก์ไฟล์ '*.php'
ด้วย
ตามค่าเริ่มต้น เครื่องมือจะแสดงการแจ้งเตือนบนเดสก์ท็อปทุกครั้งที่การทดสอบผ่านหรือล้มเหลว หากคุณต้องการปิดการใช้งานการแจ้งเตือนบนเดสก์ท็อปบางอย่าง ให้อัปเดต .phpunit-watcher.yml
โดยการเพิ่มคีย์ notifications
notifications :
passingTests : false
failingTests : false
ตามค่าเริ่มต้น เครื่องมือจะแสดงตัวช่วยสำหรับการทำงานของคีย์บอร์ดหลังจากการรันแต่ละครั้ง คุณสามารถซ่อนข้อความช่วยเหลือเหล่านี้ได้โดยเพิ่มคีย์ hideManual
ใน .phpunit-watcher.yml
hideManual : true
ตามค่าเริ่มต้น เครื่องมือจะใช้ vendor/bin/phpunit
เป็นไฟล์ไบนารี PHPUnit เริ่มต้น อย่างไรก็ตาม อาจมีประโยชน์หากสามารถปรับแต่งค่านี้สำหรับผู้ที่มีไฟล์ไบนารี่ในตำแหน่งอื่น
คุณสามารถเจาะจงได้ในไฟล์กำหนดค่า . .phpunit-watcher.yml
นี่คือตัวอย่าง:
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
หากคุณต้องการใช้ส่งผ่านอาร์กิวเมนต์เดียวกันไปยัง PHPUnit ทุกครั้งที่ผู้ดูเริ่มต้น คุณสามารถระบุอาร์กิวเมนต์เหล่านั้นในไฟล์กำหนดค่า .phpunit-watcher.yml
ได้ นี่คือตัวอย่าง:
phpunit :
arguments : ' --stop-on-failure '
เมื่อเริ่มต้นเครื่องมือด้วยอาร์กิวเมนต์บางอย่าง (เช่น phpunit-watcher watch --filter=my_favourite_test
) อาร์กิวเมนต์เหล่านั้นจะถูกนำมาใช้แทนอาร์กิวเมนต์ที่ระบุในไฟล์ปรับแต่ง
โปรดดู CHANGELOG สำหรับข้อมูลเพิ่มเติมว่ามีอะไรเปลี่ยนแปลงเมื่อเร็วๆ นี้
composer test
โปรดดูการมีส่วนร่วมเพื่อดูรายละเอียด
หากคุณพบข้อบกพร่องเกี่ยวกับการรักษาความปลอดภัย โปรดส่งอีเมลมาที่ [email protected] แทนการใช้ตัวติดตามปัญหา
คุณสามารถใช้แพ็คเกจนี้ได้ฟรี (ได้รับใบอนุญาตจาก MIT) แต่หากคุณใช้บ่อยครั้ง เราขอขอบคุณอย่างยิ่งที่คุณส่งโปสการ์ดจากบ้านเกิดของคุณมาให้เรา โดยระบุแพ็คเกจที่คุณใช้อยู่
ที่อยู่ของเราคือ: Spatie, Kruikstraat 22, 2018 แอนต์เวิร์ป, เบลเยียม
เราเผยแพร่ไปรษณียบัตรที่ได้รับทั้งหมดบนเว็บไซต์ของบริษัทของเรา
เราเริ่มสร้างแพ็คเกจนี้หลังจากอ่านบทความที่ยอดเยี่ยมนี้โดย Christoper Pitt
คำสั่งแบบโต้ตอบได้รับแรงบันดาลใจจาก Jest
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม