Pular para o conteúdo

Sem o comando

O bootstrap.php funciona direto no PHPUnit, no Pest e no ParaTest, configurado por variáveis de ambiente; é o que o comando faz por baixo. Serve a um runner que o comando não conhece, ou a um passo de CI que quer conduzir as peças por conta própria.

O bootstrap​

Passe o bootstrap ao runner com as variáveis definidas. Com o Sonda instalado pelo Composer:

SONDA_AUTOLOAD=vendor/autoload.php SONDA_TARGET=app SONDA_EXCLUDE=app/Providers \
SONDA_CACHE=/tmp/sonda/cache SONDA_OUT=/tmp/sonda/runs SONDA_STRICT=1 SONDA_FAST=1 \
php artisan test --parallel --bootstrap=vendor/ddr/sonda/bootstrap.php

Com um clone, o bootstrap é /opt/sonda/bootstrap.php. Cada processo (cada worker do ParaTest incluído) grava a própria execução em SONDA_OUT; use um diretório novo para cada medição.

Variáveis​

Listas são separadas por PATH_SEPARATOR (: no Linux e no macOS).

VariávelObrigatóriaSignificado
SONDA_AUTOLOADsimvendor/autoload.php do projeto medido
SONDA_TARGETsimdiretórios instrumentados
SONDA_CACHEsimdiretório dos arquivos instrumentados
SONDA_OUTsimdiretório das execuções, um arquivo por processo; use um novo para cada medição
SONDA_EXCLUDEnãodiretórios deixados de fora
SONDA_ONLYnãoos únicos arquivos medidos
SONDA_STRICT=1nãosemântica estrita de branches
SONDA_FAST=1nãoreferência local por função: sondas mais baratas
SONDA_CHAINnãoo bootstrap original do projeto, quando não é só o autoload
SONDA_VIEWSnãodiretórios de views do Blade a medir
SONDA_INCLUDES=1nãoinstrumenta também os arquivos do alvo carregados pelo caminho (include/require)

O relatório​

O report.php junta as execuções de um diretório e grava um .cov do php-code-coverage, que serve a qualquer outro formato:

php vendor/ddr/sonda/report.php /tmp/sonda/runs app coverage.cov app/Providers

Os argumentos: o diretório das execuções, o diretório do fonte, o arquivo .cov de saída e, se quiser, diretórios excluídos.

usage: report.php <runs directory> <source directory> <output .cov file> [excluded directory]...