Pular para o conteúdo principal

🧪 Testes e Cobertura

O projeto utiliza o Pest como framework de testes, garantindo uma sintaxe expressiva e ferramentas poderosas para manter a qualidade do código.

🚀 Executando Testes

Para rodar a suíte de testes completa:

composer test

Ou diretamente via Pest:

./vendor/bin/pest

📊 Cobertura de Código (Coverage)

A cobertura de código mede a porcentagem de código executada durante os testes. Isso ajuda a identificar partes do sistema que podem precisar de mais atenção.

Requisitos

Para gerar relatórios de cobertura, você precisará do PHP com Xdebug 3.0+ ou PCOV instalado.

Recomendado: PCOV (Mais rápido)

pecl install pcov
# Ative a extensão no seu php.ini

Alternativa: Xdebug

# Certifique-se de que XDEBUG_MODE=coverage esteja configurado

Gerando Relatório

Use a opção --coverage para ver o resumo no terminal:

./vendor/bin/pest --coverage

Linhas Não Cobertas

Se houver linhas não cobertas, elas serão destacadas em vermelho. Por exemplo, 52..60 indica que as linhas de 52 a 60 não foram executadas pelos testes.


🛡️ Limites Mínimos (Thresholds)

Para garantir que a cobertura não diminua com o tempo, você pode impor limites mínimos. Se o valor não for atingido, os testes falharão.

Definindo um Mínimo (Ex: 90%)

./vendor/bin/pest --coverage --min=90

Definindo um Valor Exato

./vendor/bin/pest --coverage --exactly=100

🙈 Ignorando Código

Em casos excepcionais onde um bloco de código não deve ser contabilizado na cobertura, você pode usar anotações:

/** @codeCoverageIgnore */
public function metodoNaoTestavel()
{
// ...
}

Ou para blocos específicos:

// @codeCoverageIgnoreStart
if ($condicaoRara) {
return false;
}
// @codeCoverageIgnoreEnd

🔍 Análise Estática (PHPStan)

Além dos testes unitários, o projeto utiliza o PHPStan para análise estática de código, ajudando a encontrar bugs antes mesmo da execução.

Executando a Análise

Para rodar o PHPStan:

composer phpstan

O projeto está configurado no nível 5 de rigor. Você pode ajustar esse nível no arquivo phpstan.neon.