Não seria ótimo se seus testes do PHPUnit fossem reexecutados automaticamente sempre que você alterasse algum código? Este pacote pode fazer exatamente isso.
Com o pacote instalado você pode fazer isso:
phpunit-watcher watch
É assim que parece:
Isso executará os testes e os executará novamente sempre que um arquivo no diretório app
, src
ou tests
for modificado.
Quer passar alguns argumentos para o PHPUnit? Não tem problema, basta adicioná-los:
phpunit-watcher watch --filter=it_can_run_a_single_test
Em sua excelente palestra no Laracon EU 2017, Amo Chohan mostra nosso phpunit-watcher em ação.
Investimos muitos recursos na criação dos melhores pacotes de código aberto. Você pode nos apoiar comprando um de nossos produtos pagos.
Agradecemos muito que você nos envie um cartão postal de sua cidade natal, mencionando qual(is) de nossos pacotes você está usando. Você encontrará nosso endereço em nossa página de contato. Publicamos todos os cartões postais recebidos em nosso mural virtual de cartões postais.
Você pode instalar este pacote globalmente assim
composer global require spatie/phpunit-watcher
Depois disso, phpunit-watcher watch
pode ser executado em qualquer diretório do seu sistema.
Alternativamente, você pode instalar o pacote localmente como uma dependência de desenvolvimento em seu projeto
composer require spatie/phpunit-watcher --dev
Instalado localmente, você pode executá-lo com vendor/bin/phpunit-watcher watch
Todos os exemplos pressupõem que você instalou o pacote globalmente. Se você optou pela instalação local, acrescente vendor/bin/
em todos os lugares onde phpunit-watcher
é mencionado.
Você pode iniciar o observador com:
phpunit-watcher watch
Isso executará os testes e os executará novamente sempre que um arquivo no diretório src
ou tests
for modificado.
Quer passar alguns argumentos para o PHPUnit? Não tem problema, basta adicioná-los:
phpunit-watcher watch --filter=it_can_run_a_single_test
Ao executar phpunit-watcher
a partir de um script do Composer, pode ser necessário redirecionar a entrada para que os comandos interativos funcionem e desabilitar o tempo limite padrão:
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
No Windows, atualmente, o TTY não é compatível, portanto, qualquer interação foi desativada. Embora a observação de mudanças funcione, quaisquer argumentos para PHPUnit devem ser fornecidos ao chamar inicialmente phpunit-watcher
.
Certos aspectos do comportamento da ferramenta podem ser modificados. O arquivo para opções pode ser denominado .phpunit-watcher.yml
, phpunit-watcher.yml
ou phpunit-watcher.yml.dist
. A ferramenta procurará um arquivo nessa ordem.
Se um arquivo de configuração não existir no diretório do projeto, a ferramenta verificará se existe um arquivo em algum dos diretórios pai do diretório do projeto.
Aqui está um exemplo de conteúdo. Continue lendo para uma explicação mais detalhada de todas as opções.
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
Você pode personalizar os diretórios que estão sendo monitorados criando um arquivo chamado .phpunit-watcher.yml
no diretório do seu projeto. Aqui estão alguns exemplos de conteúdo:
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
Consulte a documentação do Finder para obter mais detalhes.
Se você tiver atrasos no desempenho com repositórios grandes, tente adicionar entradas exclude
para quaisquer subdiretórios grandes que você não precisa monitorar. Ativar as opções ignore...
também pode ser útil. Também é importante garantir que você também esteja usando a máscara de arquivo '*.php'
.
Por padrão, a ferramenta exibirá notificações na área de trabalho sempre que os testes forem aprovados ou reprovados. Se você deseja desativar determinadas notificações da área de trabalho, atualize .phpunit-watcher.yml
adicionando uma chave notifications
.
notifications :
passingTests : false
failingTests : false
Por padrão, a ferramenta exibirá um auxiliar para ações do teclado após cada execução. Você pode ocultar essas mensagens de ajuda adicionando uma chave hideManual
em .phpunit-watcher.yml
.
hideManual : true
Por padrão, a ferramenta usa vendor/bin/phpunit
como arquivo binário PHPUnit padrão, no entanto, pode ser útil poder personalizar esse valor para pessoas que possuem um arquivo binário em um local diferente.
Você pode especificá-lo no arquivo de configuração .phpunit-watcher.yml
. Aqui está um exemplo:
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
Se você quiser passar os mesmos argumentos para o PHPUnit sempre que o inspetor for iniciado, você pode especificar aqueles no arquivo de configuração .phpunit-watcher.yml
. Aqui está um exemplo:
phpunit :
arguments : ' --stop-on-failure '
Ao iniciar a ferramenta com alguns argumentos (por exemplo phpunit-watcher watch --filter=my_favourite_test
) esses argumentos serão usados em vez daqueles especificados no arquivo de configuração.
Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.
composer test
Consulte CONTRIBUINDO para obter detalhes.
Se você encontrou um bug relacionado à segurança, envie um email para [email protected] em vez de usar o rastreador de problemas.
Você é livre para usar este pacote (ele é licenciado pelo MIT), mas se você usá-lo com frequência, agradecemos muito que você nos envie um cartão postal de sua cidade natal, mencionando quais de nossos pacotes você está usando.
Nosso endereço é: Spatie, Kruikstraat 22, 2018 Antuérpia, Bélgica.
Publicamos todos os cartões postais recebidos no site da nossa empresa.
Começamos a criar este pacote depois de ler este excelente artigo de Christoper Pitt
Comandos interativos foram inspirados em Jest.
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.