Tachycardia هو امتداد PHPUnit يقوم باكتشاف الاختبارات البطيئة التشغيل والإبلاغ عنها وطباعتها مباشرة في وحدة التحكم الخاصة بك. ويمكنه أيضًا تضمين التعليقات التوضيحية الاختيارية على الاختبارات المحددة في الملفات أثناء طلبات السحب.
ملحوظة: سوف يكتشف عدم انتظام دقات القلب الاختبارات البطيئة في مجموعات الاختبار الخاصة بك فقط ولكنه لن يقدم أي تفسير لسبب بطء هذه الاختبارات المحددة. يجب عليك استخدام ملف تعريف مخصص لهذه بدلاً من ذلك.
$ بائع/bin/phpunitPHPUnit 10.5.5 بواسطة سيباستيان بيرجمان والمساهمين. وقت التشغيل: PHP 8.3.1 مع Xdebug 3.3.1 التكوين: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158.... .................................................. ........... 65 / 96 ( 67%).............................. 96 / 96 (100%) NexusPHPUnitTachycardiaTachycardiaExtension حدد هذا الاختبار البطيء الوحيد: استغرق 1.3374 حد 1.0000 ثانية لتشغيل اختبارات NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlySlow: الوقت: 00:00:01.710 (2.54%) الوقت: 00:58.737، الذاكرة: 16.00 ميغابايت (96 اختبارًا، 265 تأكيدًا) إنشاء تقرير تغطية التعليمات البرمجية بتنسيق Clover XML ... تم [00:00.391] إنشاء تقرير تغطية التعليمات البرمجية بتنسيق HTML ... تم [00:01.930]
يجب تثبيت عدم انتظام دقات القلب فقط باعتباره تبعية لوقت التطوير للمساعدة في تشغيل مجموعة اختبار مشروعك. يمكنك التثبيت باستخدام Composer:
composer require --dev nexusphp/tachycardia
عدم انتظام دقات القلب يدعم هذه المعلمات:
time-limit - الحد الزمني بالثواني الذي سيتم فرضه على جميع الاختبارات. سيتم اعتبار جميع الاختبارات التي تتجاوز هذا المبلغ بطيئة. الافتراضي: 1.00
عدد التقارير - عدد الاختبارات البطيئة التي سيتم عرضها في تقرير وحدة التحكم. يتم تجاهل هذا في تقرير Github Actions. الافتراضي: 10
الدقة - درجة دقة الكسور العشرية للوقت المستهلك للاختبار والحد الزمني المخصص. الافتراضي: 4
التنسيق - تنسيق العارض لوحدة التحكم.
تنسيق ci - تنسيق العارض الخاص بـ CI.
يمكن أن تكون تنسيقات العارض لكل من وحدة التحكم وCI أيًا مما يلي:
شكل | لوحدة التحكم؟ | ل سي آي؟ | ملاحظات |
---|---|---|---|
قائمة | الافتراضي لوحدة التحكم | ||
طاولة | |||
جيثب | الافتراضي لـ CI | ||
gitlab | |||
com.teamcity |
لاستخدام الامتداد مع خيارات التكوين الافتراضية الخاصة به، يمكنك ببساطة إضافة ما يلي إلى ملف phpunit.xml.dist
أو phpunit.xml
.
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php"ذاكرة التخزين المؤقتResultFile=" build/.phpunit.cache/test-results"colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" FailOnRisky="true" FailOnWarning="true"><!-- تكوينات phpunit الأخرى هنا --><الامتدادات> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </الامتدادات> </phpunit>
الآن، قم بتشغيل vendor/bin/phpunit
. إذا كانت هناك حالات اختبار يتجاوز فيها الوقت المستهلك الحدود الزمنية التي تم تكوينها، فسيتم عرضها في وحدة التحكم بعد اكتمال جميع الاختبارات.
إذا كنت ترغب في تخصيص واحد أو أكثر من الخيارات المتاحة، يمكنك فقط تغيير الإدخال في ملف phpunit.xml.dist
أو phpunit.xml
.
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php"ذاكرة التخزين المؤقتResultFile=" build/.phpunit.cache/test-results"colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" FailOnRisky="true" FailOnWarning="true"><!-- تكوينات phpunit الأخرى هنا --><الامتدادات> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <اسم المعلمة = "الحد الزمني" value = "2.00" /> <اسم المعلمة = "عدد التقارير" value = "30" /> <اسم المعلمة = "الدقة" القيمة = "2" /> <اسم المعلمة = "تنسيق" القيمة = "جدول" /> <اسم المعلمة = "ci-format" value = "github" /> </بوتستراب> </الامتدادات> </phpunit>
الإبلاغ عن الاختبارات البطيئة
تمكين/تعطيل تقارير وحدة التحكم باستخدام متغير البيئة
تمكين/تعطيل التوصيف في Github Actions
الحدود الزمنية المخصصة
تحديد حدود زمنية مخصصة لكل اختبار
تحديد حدود زمنية مخصصة لكل فئة
تعطيل الحدود الزمنية لكل اختبار أو لكل فئة
استخدام السمات بدلا من ذلك
جدولة النتائج بدلاً من العرض العادي
إعادة تشغيل الاختبارات البطيئة لمعرفة ما إذا كانت سريعة الآن
الترقية من v1.x إلى v2.x؟ راجع دليل الترقية.
المساهمات هي موضع ترحيب كبير. إذا رأيت تحسنًا أو إصلاحًا للأخطاء، فافتح PR الآن!
اقرأ المزيد عن المساهمة في Nexus Tachycardia.
تم استلهام عدم انتظام دقات القلب من johnkary/phpunit-speedtrap
، ولكن تم حقنه بالستيرويدات الابتنائية.
عدم انتظام دقات القلب هو في الواقع مصطلح طبي يشير إلى معدل ضربات القلب الذي يتجاوز معدل الراحة الطبيعي بشكل عام أكثر من 100 نبضة في الدقيقة.
هذه المكتبة مرخصة بموجب ترخيص MIT.