ข้อมูลโครงการ:
นาฬิกาจับเวลาเป็นส่วนขยาย phpunit/phpunit
ที่จำเป็นสำหรับการวิเคราะห์ประสิทธิภาพ!
รับข้อมูลเชิงลึกอันล้ำค่าเกี่ยวกับเวลาดำเนินการของโค้ดและความถี่การโทรระหว่างการทดสอบการทำงาน ส่วนขยายได้รับการออกแบบมาเพื่อยกระดับการวิเคราะห์ประสิทธิภาพของโค้ดของคุณ ติดตามเวลาดำเนินการและความถี่ของส่วนโค้ดที่ทำเครื่องหมายไว้เพื่อแก้ไขจุดคอขวดของประสิทธิภาพด้วยความแม่นยำ คุณสามารถระบุปัญหาคอขวดของประสิทธิภาพได้ (เช่น การล้างฐานข้อมูลหรือการตั้งค่า) หรือเพียงตรวจสอบเมื่อเวลาผ่านไป ส่วนขยายจะสร้างรายงานนาฬิกาจับเวลาสำหรับการทดสอบแต่ละครั้ง รวมถึงรายงานสรุปเมื่อสิ้นสุดการทดสอบ
โปรเจ็กต์นี้มีแพ็คเกจ composer
และไฟล์เก็บถาวร Phar
ส่วนขยายนี้เข้ากันได้กับ phpunit/phpunit
เวอร์ชันต่อไปนี้:
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
เมื่อคุณเพิ่มจุดการวัดลงในโค้ดแล้ว ส่วนขยายจะหยุดดูและนับคะแนนเหล่านั้น ผลลัพธ์จะแสดงสำหรับการทดสอบแต่ละครั้งและเป็นรายงานรวมเมื่อสิ้นสุดการทดสอบ
นี่คือตัวอย่างว่าผลลัพธ์ของคลาสการทดสอบเดี่ยวอาจมีลักษณะอย่างไร:
Stopwatch for TQTestsExampleSingleTest::testDataCalculation:
- TQTestingDatabase::deleteData 0.117secs ( 3x, Ø 0.04) TOTAL 327.026secs ( 184x, Ø 1.78)
- ...onmentTesting::cleanupInstance 0.259secs ( 1x, Ø 0.26) TOTAL 6.159secs ( 60x, Ø 0.10)
- TQTestingDatabase::import 7.889secs ( 11x, Ø 0.72) TOTAL 250.958secs ( 352x, Ø 0.71)
- Test 1.428secs ( 1x, Ø 1.43) TOTAL 1041.228secs ( 70x, Ø 14.87)
.
Stopwatch for TQTestsExampleSingleTest::testDataTransfer:
- TQTestingDatabase::deleteData 0.116secs ( 3x, Ø 0.04) TOTAL 327.142secs ( 187x, Ø 1.75)
- ...onmentTesting::cleanupInstance 0.256secs ( 1x, Ø 0.26) TOTAL 6.415secs ( 61x, Ø 0.11)
- TQTestingDatabase::import 7.573secs ( 11x, Ø 0.69) TOTAL 258.531secs ( 363x, Ø 0.71)
- Test 5.998secs ( 1x, Ø 6.00) TOTAL 1047.226secs ( 71x, Ø 14.75)
.
Stopwatch for TQTestsExampleSingleTest TearDown:
- TQTestingDatabase::deleteData 38.486secs ( 6x, Ø 6.41) TOTAL 365.511secs ( 190x, Ø 1.92)
- ...onmentTesting::cleanupInstance 0.256secs ( 1x, Ø 0.26) TOTAL 6.415secs ( 61x, Ø 0.11)
- TQTestingDatabase::import 7.573secs ( 11x, Ø 0.69) TOTAL 258.531secs ( 363x, Ø 0.71)
- Test 5.998secs ( 1x, Ø 6.00) TOTAL 1047.226secs ( 71x, Ø 14.75)
และเมื่อสิ้นสุดการทดสอบ คุณจะได้รับสรุปนาฬิกาจับเวลาทั้งหมดที่ใช้ และจะมีลักษณะดังนี้:
Stopwatch TOTALS:
- Test TOTAL 1047.246secs ( 78x, Ø 13.43)
- TQTestingDatabase::deleteData TOTAL 365.511secs ( 190x, Ø 1.92)
- TQTestingDatabase::import TOTAL 258.531secs ( 363x, Ø 0.71)
- ...onmentTesting::cleanupInstance TOTAL 6.416secs ( 62x, Ø 0.10)
- TQProductionMonitoring::ping TOTAL 17.967secs ( 7x, Ø 2.57)
นาฬิกาจับเวลาใช้งานง่ายมาก โค้ดเพียงบรรทัดเดียวพันรอบโค้ดที่คุณต้องการวัดก็ทำได้
ตัวอย่างเช่น สมมติว่าการทดสอบของคุณค่อนข้างช้า แต่คุณไม่รู้ว่าใครคือผู้กระทำผิด คุณสงสัยว่าอาจเป็นการตั้งค่าฐานข้อมูลที่ต้องทำสำหรับการทดสอบแต่ละครั้ง เพียงล้อมบล็อคโค้ดที่ต้องสงสัยดังนี้:
Stopwatch:: start ( __METHOD__ );
self :: initializeDatabase (
$ db -> getConnection (),
... static :: createData ()
);
Stopwatch:: stop ( __METHOD__ );
หากการทดสอบ การตั้งค่า การรื้อถอน หรือวิธีการอื่นๆ ที่เกี่ยวข้องดำเนินการโค้ดนี้ Stopwatch จะวัดเวลาดำเนินการและการนับอย่างราบรื่น และจะนำเสนอผลลัพธ์ภายในผลลัพธ์การทดสอบ
composer
วิ่ง
composer require --dev teqneers/phpunit-stopwatch
เพื่อติดตั้ง teqneers/phpunit-stopwatch
เป็นแพ็คเกจ composer
ดาวน์โหลด phpunit-stopwatch.phar
จากรุ่นล่าสุด
ก่อนที่ส่วนขยายจะตรวจพบการทดสอบที่ช้าใน phpunit/phpunit
คุณต้องบูตมันก่อน กลไกการบูตสแตรปขึ้นอยู่กับเวอร์ชันของ phpunit/phpunit
ที่คุณใช้
composer
เพื่อบูตส่วนขยายเป็นแพ็คเกจ composer
เมื่อใช้งาน
phpunit/phpunit:^10.0.0
phpunit/phpunit:^11.0.0
ปรับไฟล์การกำหนดค่า phpunit.xml
ของคุณและกำหนดค่าไฟล์
extensions
บน phpunit/phpunit:^10.1.0
extensions
บน phpunit/phpunit:^11.0.0
+
+
+
test/Unit/
เพื่อบูตส่วนขยายเป็น PHAR เมื่อใช้งาน
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
ปรับไฟล์การกำหนดค่า phpunit.xml
ของคุณและกำหนดค่าไฟล์
extensionsDirectory
และองค์ประกอบ extensions
บน phpunit/phpunit:^10.0.0
extensionsDirectory
และองค์ประกอบ extensions
บน phpunit/phpunit:^11.0.0
+ extensionsDirectory="directory/where/you/saved/the/extension/phars"
>
+
+
+
test/Unit/
จนถึงขณะนี้ ยังไม่มีการตั้งค่าการกำหนดค่าสำหรับส่วนขยายนี้
เมื่อคุณบูตส่วนขยายแล้ว คุณสามารถรันการทดสอบได้ตามปกติ เช่น:
vendor/bin/phpunit
เมื่อส่วนขยายถูกใช้ที่ไหนสักแห่งในโค้ดของคุณ ส่วนขยายจะแสดงรายงาน:
โครงการนี้ใช้ใบอนุญาต MIT
แพ็คเกจนี้ได้รับแรงบันดาลใจจาก ergebnis/phpunit-slow-test-detector