Tachycardia adalah ekstensi PHPUnit yang mendeteksi dan melaporkan tes yang berjalan lambat dan mencetaknya langsung di konsol Anda. Ini juga dapat secara opsional memberi anotasi sebaris pada pengujian spesifik dalam file selama permintaan penarikan.
CATATAN: Takikardia hanya akan mendeteksi tes lambat di ruang tes Anda tetapi tidak memberikan penjelasan mengapa tes tersebut lambat. Anda sebaiknya menggunakan profiler khusus untuk ini.
$ vendor/bin/phpunitPHPUnit 10.5.5 oleh Sebastian Bergmann dan kontributor. Runtime: PHP 8.3.1 dengan Xdebug 3.3.1Konfigurasi: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158.... ................................................. ........... 65 / 96 ( 67%)................................. 96 / 96 (100%)NexusPHPUnitTachycardiaTachycardiaExtension mengidentifikasi satu-satunya pengujian lambat ini: Butuh waktu 1,3374 detik dari batas 1,0000 detik untuk menjalankan NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlyTes lambat: Waktu: 00:00:01.710 (2,54%)Waktu: 00:58.737, Memori: 16.00 MBOK (96 tes, 265 pernyataan)Membuat laporan cakupan kode dalam format Clover XML ... selesai [00:00.391]Membuat laporan cakupan kode dalam format HTML... selesai [00:01.930]
Takikardia hanya boleh dipasang sebagai ketergantungan waktu pengembangan untuk membantu menjalankan rangkaian pengujian proyek Anda. Anda dapat menginstal menggunakan Komposer:
composer require --dev nexusphp/tachycardia
Takikardia mendukung parameter berikut:
batas waktu - Batas waktu dalam hitungan detik yang akan diterapkan untuk semua pengujian. Semua tes yang melebihi jumlah ini akan dianggap lambat. Bawaan: 1,00
jumlah laporan - Jumlah pengujian lambat yang akan ditampilkan di laporan konsol. Ini diabaikan dalam laporan Github Actions. Bawaan: 10
presisi - Tingkat presisi desimal dari waktu yang digunakan tes dan batas waktu yang ditentukan. Bawaan: 4
format - Format penyaji untuk konsol.
ci-format - Format penyaji untuk CI.
Format perender untuk konsol dan CI dapat berupa:
Format | Untuk Konsol? | Untuk CI? | Perkataan |
---|---|---|---|
daftar | Default untuk konsol | ||
meja | |||
github | Bawaan untuk CI | ||
gitlab | |||
kota tim |
Untuk menggunakan ekstensi dengan opsi konfigurasi defaultnya, Anda cukup menambahkan yang berikut ke dalam file phpunit.xml.dist
atau phpunit.xml
Anda.
<?xml versi="1.0" pengkodean="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results" colours="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Konfigurasi phpunit Anda yang lain di sini --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </ekstensi> </phpunit>
Sekarang, jalankan vendor/bin/phpunit
. Jika ada kasus pengujian yang waktu yang digunakan melebihi batas waktu yang dikonfigurasi, kasus ini akan ditampilkan di konsol setelah semua pengujian selesai.
Jika Anda ingin menyesuaikan satu atau lebih opsi yang tersedia, Anda cukup mengubah entri di file phpunit.xml.dist
atau phpunit.xml
Anda.
<?xml versi="1.0" pengkodean="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results" colours="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Konfigurasi phpunit Anda yang lain di sini --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <parameter nama="batas waktu" nilai="2,00" /> <nama parameter="jumlah laporan" nilai="30" /> <nama parameter="presisi" nilai="2" /> <parameter nama="format" nilai="tabel" /> <nama parameter="ci-format" value="github" /> </bootstrap> </ekstensi> </phpunit>
Melaporkan Tes Lambat
Aktifkan/nonaktifkan pelaporan konsol menggunakan variabel lingkungan
Aktifkan/nonaktifkan pembuatan profil di Github Actions
Batas Waktu Khusus
Menetapkan batas waktu khusus per tes
Menetapkan batas waktu khusus per kelas
Menonaktifkan batas waktu per tes atau per kelas
Menggunakan Atribut sebagai gantinya
Membuat tabulasi hasil, bukan render biasa
Menjalankan kembali pengujian lambat untuk melihat apakah pengujian ini cepat sekarang
Mengupgrade dari v1.x ke v2.x? Lihat Panduan PENINGKATAN.
Kontribusi sangat kami harapkan. Jika Anda melihat peningkatan atau perbaikan bug, buka PR sekarang!
Baca selengkapnya di Berkontribusi pada Nexus Tachycardia.
Takikardia terinspirasi dari johnkary/phpunit-speedtrap
, tetapi disuntik dengan steroid anabolik.
Takikardia sebenarnya adalah istilah medis yang mengacu pada detak jantung yang melebihi kecepatan istirahat normal pada umumnya di atas 100 detak per menit.
Perpustakaan ini dilisensikan di bawah Lisensi MIT.