Taquicardia é uma extensão do PHPUnit que detecta e relata testes de execução lenta e os imprime diretamente no seu console. Opcionalmente, ele também pode anotar em linha os testes específicos nos arquivos durante solicitações pull.
NOTA: A taquicardia detectará apenas os testes lentos em seus conjuntos de testes, mas não oferecerá nenhuma explicação sobre por que esses testes identificados são lentos. Você deve usar um criador de perfil dedicado para isso.
$ vendor/bin/phpunitPHPUnit 10.5.5 por Sebastian Bergmann e colaboradores.Tempo de execução: PHP 8.3.1 com Xdebug 3.3.1Configuração: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158.... .................................................. ........... 65/96 (67%)........................ 96 / 96 (100%) NexusPHPUnitTachycardiaTachycardiaExtension identificou este único teste lento: Foram necessários 1,3374s do limite de 1,0000s para executar testes NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlySlow: Tempo: 00:00:01.710 (2,54%)Tempo: 00:58.737, Memória: 16,00 MBOK (96 testes, 265 asserções)Gerando relatório de cobertura de código no formato Clover XML... concluído [00:00.391]Gerando relatório de cobertura de código em formato HTML... concluído [00:01.930]
Tachycardia só deve ser instalada como uma dependência em tempo de desenvolvimento para auxiliar na execução do conjunto de testes do seu projeto. Você pode instalar usando o Composer:
composer require --dev nexusphp/tachycardia
A taquicardia suporta estes parâmetros:
time-limit - Limite de tempo em segundos a ser aplicado para todos os testes. Todos os testes que excedam esse valor serão considerados lentos. Padrão: 1,00
report-count – Número de testes lentos a serem exibidos no relatório do console. Isso é ignorado no relatório de ações do Github. Padrão: 10
precisão - Grau de precisão das casas decimais do tempo consumido do teste e limite de tempo alocado. Padrão: 4
format - O formato do renderizador para o console.
ci-format - O formato do renderizador para o CI.
Os formatos de renderização para o console e para o CI podem ser qualquer um dos seguintes:
Formatar | Para console? | Para CI? | Observações |
---|---|---|---|
lista | Padrão para console | ||
mesa | |||
GitHub | Padrão para CI | ||
gitlab | |||
cidade da equipe |
Para usar a extensão com suas opções de configuração padrão, você pode simplesmente adicionar o seguinte em seu arquivo phpunit.xml.dist
ou phpunit.xml
.
<?xml versão="1.0" codificação="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" cores = "true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Suas outras configurações do phpunit aqui --><extensions> <bootstrap class="NexusPHPUnitTaquicardiaTaquicardiaExtension" /> </extensões> </phpunit>
Agora, execute vendor/bin/phpunit
. Caso existam casos de teste em que o tempo consumido ultrapasse os limites de tempo configurados, estes serão exibidos no console após a conclusão de todos os testes.
Se desejar personalizar uma ou mais opções disponíveis, basta alterar a entrada em seu arquivo phpunit.xml.dist
ou phpunit.xml
.
<?xml versão="1.0" codificação="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" cores = "true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Suas outras configurações do phpunit aqui --><extensions> <bootstrap class="NexusPHPUnitTaquicardiaTaquicardiaExtension"> <nome do parâmetro = "limite de tempo" valor = "2,00" /> <nome do parâmetro = "contagem de relatório" valor = "30" /> <nome do parâmetro="precisão" valor="2" /> <nome do parâmetro="formato" valor="tabela" /> <nome do parâmetro = "ci-format" valor = "github" /> </bootstrap> </extensões> </phpunit>
Relatando testes lentos
Habilitar/desabilitar relatórios do console usando variável de ambiente
Habilitar/desabilitar criação de perfil no Github Actions
Limites de tempo personalizados
Definir limites de tempo personalizados por teste
Definir limites de tempo personalizados por aula
Desativando limites de tempo por teste ou por aula
Usando atributos em vez disso
Tabular resultados em vez de renderização simples
Executando novamente testes lentos para ver se eles são rápidos agora
Atualizando de v1.x para v2.x? Consulte o Guia de ATUALIZAÇÃO.
Contribuições são muito bem-vindas. Se você notar uma melhoria ou correção de bug, abra um PR agora!
Leia mais sobre Contribuindo para a Taquicardia Nexus.
A taquicardia foi inspirada em johnkary/phpunit-speedtrap
, mas injetada com esteróides anabolizantes.
Taquicardia é na verdade um termo médico que se refere a uma frequência cardíaca que excede a frequência normal de repouso em geral de mais de 100 batimentos por minuto.
Esta biblioteca está licenciada sob a licença MIT.