Tachycardia es una extensión de PHPUnit que detecta e informa pruebas de ejecución lenta y las imprime directamente en su consola. Opcionalmente, también puede anotar en línea las pruebas específicas en los archivos durante las solicitudes de extracción.
NOTA: Taquicardia solo detectará las pruebas lentas en sus conjuntos de pruebas, pero no ofrecerá ninguna explicación de por qué las identificadas son lentas. En su lugar, debería utilizar un generador de perfiles dedicado para estos.
$ proveedor/bin/phpunitPHPUnit 10.5.5 por Sebastian Bergmann y colaboradores.Tiempo de ejecución: PHP 8.3.1 con Xdebug 3.3.1Configuración: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158.... ................................................. ........... 65 / 96 ( 67%)................................. 96 / 96 (100%) NexusPHPUnitTachycardiaTachycardiaExtension identificó esta única prueba lenta: tomó 1.3374 s del límite de 1.0000 s para ejecutar NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlySlow pruebas: Hora: 00:00:01.710 (2,54%)Tiempo: 00:58.737, Memoria: 16.00 MBOK (96 pruebas, 265 aserciones)Generando informe de cobertura de código en formato Clover XML... hecho [00:00.391]Generando informe de cobertura de código en formato HTML... hecho [ 00:01.930]
Tachycardia solo debe instalarse como una dependencia del tiempo de desarrollo para ayudar a ejecutar el conjunto de pruebas de su proyecto. Puedes instalar usando Composer:
composer require --dev nexusphp/tachycardia
La taquicardia apoya estos parámetros:
límite de tiempo : límite de tiempo en segundos que se aplicará para todas las pruebas. Todas las pruebas que superen esta cantidad se considerarán lentas. Predeterminado: 1,00
report-count : número de pruebas lentas que se mostrarán en el informe de la consola. Esto se ignora en el informe de Acciones de Github. Predeterminado: 10
precision - Grado de precisión de los decimales del tiempo consumido de la prueba y el límite de tiempo asignado. Predeterminado: 4
formato : el formato del renderizador para la consola.
ci-format : el formato del renderizador para el CI.
Los formatos de renderizado tanto para la consola como para CI podrían ser cualquiera de:
Formato | ¿Para consola? | ¿Para CI? | Observaciones |
---|---|---|---|
lista | Predeterminado para consola | ||
mesa | |||
github | Valor predeterminado para CI | ||
gitlab | |||
ciudad del equipo |
Para usar la extensión con sus opciones de configuración predeterminadas, simplemente puede agregar lo siguiente a su archivo phpunit.xml.dist
o phpunit.xml
.
<?xml versión="1.0" codificación="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" colores="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Sus otras configuraciones de phpunit aquí --><extensiones> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </extensiones> </phpunidad>
Ahora, ejecute vendor/bin/phpunit
. Si hay casos de prueba en los que el tiempo consumido excede los límites de tiempo configurados, estos se mostrarán en la consola después de que se hayan completado todas las pruebas.
Si desea personalizar una o más de las opciones disponibles, simplemente puede cambiar la entrada en su archivo phpunit.xml.dist
o phpunit.xml
.
<?xml versión="1.0" codificación="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" colores="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Sus otras configuraciones de phpunit aquí --><extensiones> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <nombre del parámetro="límite de tiempo" valor="2.00" /> <nombre del parámetro="recuento-reporte" valor="30" /> <nombre del parámetro="precisión" valor="2" /> <parámetro nombre="formato" valor="tabla" /> <parámetro nombre="ci-formato" valor="github" /> </arranque> </extensiones> </phpunidad>
Informar pruebas lentas
Habilitar/deshabilitar los informes de la consola usando la variable de entorno
Activar/desactivar la creación de perfiles en Github Actions
Límites de tiempo personalizados
Establecer límites de tiempo personalizados por prueba
Establecer límites de tiempo personalizados por clase
Desactivar límites de tiempo por prueba o por clase
Usar atributos en su lugar
Tabular resultados en lugar de renderizar sin formato
Volver a ejecutar pruebas lentas para ver si ahora son rápidas
¿Actualizar de v1.x a v2.x? Consulte la Guía de ACTUALIZACIÓN.
Las contribuciones son muy bienvenidas. Si ve una mejora o una corrección de errores, ¡abra un PR ahora!
Lea más sobre la contribución a la taquicardia del nexo.
Tachycardia se inspiró en johnkary/phpunit-speedtrap
, pero se inyectó con esteroides anabólicos.
La taquicardia es en realidad un término médico que se refiere a una frecuencia cardíaca que excede la frecuencia normal en reposo en general de más de 100 latidos por minuto.
Esta biblioteca tiene la licencia MIT.