Tachycardia — это расширение PHPUnit, которое обнаруживает и сообщает о медленном выполнении тестов и печатает их прямо в вашей консоли. Он также может при необходимости встраивать аннотации к конкретным тестам в файлах во время запросов на включение.
ПРИМЕЧАНИЕ. Тахикардия обнаруживает только медленные тесты в ваших наборах тестов, но не дает объяснения, почему они обнаружены медленные. Вместо этого вам следует использовать специальный профилировщик.
$vendor/bin/phpunitPHPUnit 10.5.5 от Себастьяна Бергманна и его участников. Время выполнения: PHP 8.3.1 с Xdebug 3.3.1. Конфигурация: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distСлучайное начальное число: 1698146158.... .................................................. ........... 65 / 96 ( 67%)................................. 96 / 96 (100%)NexusPHPUnitТахикардияТахикардияExtension определила этот единственный медленный тест: взял 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]
Tachycardia следует устанавливать только как зависимость во время разработки, чтобы облегчить запуск набора тестов вашего проекта. Вы можете установить с помощью Composer:
composer require --dev nexusphp/tachycardia
Тахикардия поддерживает такие параметры:
time-limit — ограничение времени в секундах, которое должно применяться для всех тестов. Все тесты, превышающие это количество, будут считаться медленными. По умолчанию: 1,00
report-count — количество медленных тестов, отображаемых в отчете консоли. Это игнорируется в отчете Github Actions. По умолчанию: 10
точность — степень точности десятичных знаков затраченного на тест времени и отведенного лимита времени. По умолчанию: 4
format — формат средства рендеринга для консоли.
ci-format — формат средства визуализации для CI.
Форматы рендеринга как для консоли, так и для CI могут быть любыми из:
Формат | Для консоли? | Для КИ? | Примечания |
---|---|---|---|
список | По умолчанию для консоли | ||
стол | |||
github | По умолчанию для CI | ||
гитлаб | |||
тимсити |
Чтобы использовать расширение с параметрами конфигурации по умолчанию, вы можете просто добавить следующее в свой файл phpunit.xml.dist
или phpunit.xml
.
<?xml версия="1.0" кодировка="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"colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" FailOnRisky="true" FailOnWarning="true"><!-- Другие ваши конфигурации phpunit здесь --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </расширения> </phpunit>
Теперь запуститеvendor vendor/bin/phpunit
. Если существуют тестовые случаи, в которых затраченное время превышает настроенные ограничения, они будут отображаться в консоли после завершения всех тестов.
Если вы хотите настроить один или несколько доступных параметров, вы можете просто изменить запись в файле phpunit.xml.dist
или phpunit.xml
.
<?xml версия="1.0" кодировка="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"colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" FailOnRisky="true" FailOnWarning="true"><!-- Другие ваши конфигурации phpunit здесь --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <parameter name="time-limit" value="2.00" /> <parameter name="report-count" value="30" /> <имя параметра="precision" value="2" /> <имя параметра="формат" значение="таблица" /> <parameter name="ci-format" value="github" /> </бутстрап> </расширения> </phpunit>
Отчеты о медленных тестах
Включить/отключить отчеты консоли с помощью переменной среды
Включить/отключить профилирование в действиях Github
Пользовательские ограничения по времени
Установка пользовательских ограничений по времени для каждого теста
Установка пользовательских ограничений по времени для каждого класса
Отключение ограничений по времени для каждого теста или для каждого класса
Вместо этого используйте атрибуты
Табличные результаты вместо обычного рендеринга
Повторный запуск медленных тестов, чтобы проверить, работают ли они сейчас быстро.
Обновление с версии 1.x до версии 2.x? См. Руководство по ОБНОВЛЕНИЮ.
Вклады очень приветствуются. Если вы видите улучшение или исправление ошибки, откройте PR прямо сейчас!
Узнайте больше о вкладе в нексусную тахикардию.
Тахикардия была вдохновлена johnkary/phpunit-speedtrap
, но в нее вводили анаболические стероиды.
На самом деле тахикардия — это медицинский термин, обозначающий частоту сердечных сокращений, которая превышает нормальную частоту в состоянии покоя и обычно превышает 100 ударов в минуту.
Эта библиотека лицензируется по лицензии MIT.