Informasi proyek:
Stopwatch adalah ekstensi phpunit/phpunit
yang penting untuk analisis kinerja!
Dapatkan wawasan berharga tentang waktu eksekusi kode dan frekuensi panggilan Anda selama pengujian dijalankan. Ekstensi ini dirancang untuk meningkatkan analisis kinerja kode Anda. Lacak waktu eksekusi dan frekuensi setiap segmen kode yang ditandai untuk mengatasi hambatan kinerja dengan tepat. Anda dapat mengidentifikasi hambatan kinerja (misalnya, pembersihan atau penyiapan basis data) atau hanya memantaunya dari waktu ke waktu. Ekstensi ini akan menghasilkan laporan stopwatch untuk setiap pengujian serta laporan ringkasan di akhir pengujian yang dijalankan.
Proyek ini menyediakan paket composer
dan arsip Phar.
Ekstensi ini kompatibel dengan versi phpunit/phpunit
berikut :
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
Setelah Anda menambahkan beberapa titik pengukuran ke kode Anda, ekstensi akan berhenti mengawasi dan menghitungnya. Hasilnya ditampilkan untuk setiap pengujian dan sebagai laporan total di akhir pengujian yang dijalankan.
Berikut adalah contoh tampilan output dari satu kelas pengujian:
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)
Dan di akhir pengujian, Anda akan mendapatkan ringkasan semua stopwatch yang digunakan, dan akan terlihat seperti ini:
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 sangat mudah digunakan. Hanya diperlukan satu baris kode yang melilit kode yang ingin Anda ukur.
Misalnya, tes Anda berjalan sangat lambat, tetapi Anda tidak tahu siapa pelakunya? Anda menduga bahwa mungkin pengaturan databaselah yang harus dilakukan untuk setiap pengujian. Cukup bungkus blok kode yang dicurigai sebagai berikut:
Stopwatch:: start ( __METHOD__ );
self :: initializeDatabase (
$ db -> getConnection (),
... static :: createData ()
);
Stopwatch:: stop ( __METHOD__ );
Jika pengujian, penyiapan, pembongkaran, atau metode relevan lainnya mengeksekusi kode ini, Stopwatch akan mengukur dan menghitung waktu eksekusinya dengan lancar, dan akan menyajikan hasilnya dalam keluaran pengujian.
composer
Berlari
composer require --dev teqneers/phpunit-stopwatch
untuk menginstal teqneers/phpunit-stopwatch
sebagai paket composer
.
Unduh phpunit-stopwatch.phar
dari rilis terbaru.
Sebelum ekstensi dapat mendeteksi pengujian lambat di phpunit/phpunit
, Anda perlu melakukan bootstrap. Mekanisme bootstrapping bergantung pada versi phpunit/phpunit
yang Anda gunakan.
composer
Untuk mem-bootstrap ekstensi sebagai paket composer
saat menggunakan
phpunit/phpunit:^10.0.0
phpunit/phpunit:^11.0.0
sesuaikan file konfigurasi phpunit.xml
Anda dan konfigurasikan
extensions
di phpunit/phpunit:^10.1.0
extensions
di phpunit/phpunit:^11.0.0
+
+
+
test/Unit/
Untuk mem-bootstrap ekstensi sebagai PHAR saat menggunakan
phpunit/phpunit:^10.1.0
phpunit/phpunit:^11.0.0
sesuaikan file konfigurasi phpunit.xml
Anda dan konfigurasikan
extensionsDirectory
dan elemen extensions
di phpunit/phpunit:^10.0.0
extensionsDirectory
dan elemen extensions
di phpunit/phpunit:^11.0.0
+ extensionsDirectory="directory/where/you/saved/the/extension/phars"
>
+
+
+
test/Unit/
Sejauh ini, belum ada pengaturan konfigurasi untuk ekstensi ini.
Ketika Anda telah melakukan bootstrap pada ekstensi, Anda dapat menjalankan pengujian seperti biasa. Misalnya:
vendor/bin/phpunit
Ketika ekstensi digunakan di suatu tempat dalam kode Anda, itu akan memberi Anda laporan:
Proyek ini menggunakan lisensi MIT.
Paket ini terinspirasi oleh ergebnis/phpunit-slow-test-detector
.