ปัญหา
เพื่อปรับปรุงคุณภาพของโค้ดฉันได้ตัดสินใจที่จะลองเรียนรู้วิธีทดสอบโค้ดของฉันโดยใช้การทดสอบหน่วยแทนที่จะเป็นโซลูชันการทดสอบระดับปานกลางที่ดีที่สุด
ฉันตัดสินใจติดตั้ง PHPUnit โดยใช้โปรแกรมแต่งสำหรับไลบรารีส่วนตัวที่ช่วยให้ฉันสามารถใช้งานฟังก์ชันฐานข้อมูลทั่วไปได้ ตอนแรกฉันไม่มีไฟล์กำหนดค่าสำหรับ PHPUnit และเมื่อฉันรันคำสั่งเช่น:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
โปรดทราบว่านี่เป็นคำสั่งเทอร์มินัลดังนั้นฉันจึงไม่ได้รวม.php
ส่วนขยายไว้ GeneralStringFunctionsTest ที่อ้างถึงข้างต้นเป็นGeneralStringFunctionsTest.php
ไฟล์จริงๆ
ผลลัพธ์คือสิ่งที่ฉันคาดหวัง:
เวลา: 31 ms, หน่วยความจำ: 2.75Mb
ตกลง (1 การทดสอบ 1 การยืนยัน)
จากนั้นฉันพยายามใช้ไฟล์คอนฟิกูเรชันเพื่อโหลดชุดทดสอบโดยอัตโนมัติแทนที่จะต้องพิมพ์ไฟล์ด้วยตนเองทุกครั้ง ฉันสร้างไฟล์ที่เรียกว่าphpunit.xml
ในไดเรกทอรีรากของฉันและป้อนสิ่งต่อไปนี้ลงในไฟล์: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
ตอนนี้เมื่อฉันรันคำสั่ง:
phpunit
ฉันได้รับผลลัพธ์ต่อไปนี้:
PHPUnit 4.5.0 โดย Sebastian Bergmann และผู้ร่วมให้ข้อมูล
การกำหนดค่าอ่านจาก /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml
เวลา: 16 ms, หน่วยความจำ: 1.50Mb
ไม่มีการทดสอบ!
ในกรณีที่เป็นประโยชน์โครงสร้างไดเร็กทอรีของฉันจะเป็นดังนี้:
src -
การทดสอบไดเรกทอรีระดับบนสุด (พร้อมซอร์สโค้ดทั้งหมดของฉัน) - ไดเรกทอรีระดับบนสุด (พร้อมการทดสอบทั้งหมดของฉันมีโครงสร้างเหมือนกับโฟลเดอร์srcของฉัน)
- ไฟล์ของบุคคลที่สามของผู้แต่ง
ฉันยังมีไฟล์ json และไฟล์ล็อคเช่นเดียวกับไฟล์ phpunit xml ในระดับบนสุดเป็นไฟล์
สิ่งที่ฉันพยายาม
- การเปลี่ยนไดเร็กทอรี
phpunit.xml
เป็นtests/GeneralStringFunctions
- การเปลี่ยนไดเร็กทอรี
phpunit.xml
เป็น./tests
- ย้าย
phpunit.xml
ไฟล์ไปยังtests
ไดเร็กทอรีจากนั้นเปลี่ยนไดเร็กทอรีเป็น./
แทนtests
. - การเพิ่มแอตทริบิวต์คำต่อท้ายให้กับแท็กไดเร็กทอรี
phpunit.xml
เพื่อระบุ "Tests" เป็นคำต่อท้ายอย่างชัดเจน
tests/GeneralStringFunctions/GeneralStringFunctionsTest
โฟลเดอร์หรือชื่อไฟล์หรือไม่?