O problema
Para melhorar minha qualidade de código, decidi tentar aprender como testar meu código usando Teste de Unidade em vez de minhas soluções de teste medíocres na melhor das hipóteses.
Decidi instalar o PHPUnit usando o composer para uma biblioteca pessoal que me permite obter funções de banco de dados comuns. No começo eu não tinha um arquivo de configuração para PHPUnit e quando executei comandos como:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Observe que este é um comando de terminal, portanto, não incluí a .phpextensão. O GeneralStringFunctionsTest mencionado acima é na verdade um GeneralStringFunctionsTest.phparquivo.
O resultado é o que eu esperava:
Tempo: 31 ms, Memória: 2,75 MB
OK (1 teste, 1 afirmação)
Em seguida, tentei usar um arquivo de configuração para carregar automaticamente o conjunto de testes em vez de ter que digitar o arquivo manualmente todas as vezes. Criei um arquivo chamado phpunit.xmlem meu diretório raiz e inseri o seguinte no arquivo: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Agora, quando executo o comando:
phpunit
Eu obtenho a seguinte saída:
PHPUnit 4.5.0 por Sebastian Bergmann e colaboradores.
Configuração lida em /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml
Tempo: 16 ms, Memória: 1,50 Mb
Nenhum teste executado!
Caso seja útil, minha estrutura de diretório é a seguinte:
src - Diretório de nível superior (com todo o meu código-fonte)
testes - Diretório de nível superior (com todos os meus testes, estruturado da mesma forma que minha pasta src )
fornecedor - Arquivos de terceiros do Composer
Eu também tenho o composer json e o arquivo de bloqueio, bem como o arquivo xml phpunit no nível superior como arquivos.
Coisas que eu tentei
- Mudando o diretório
phpunit.xmlparatests/GeneralStringFunctions - Mudando o diretório
phpunit.xmlpara./tests - Movendo o
phpunit.xmlarquivo para otestsdiretório e alterando o diretório em./vez detests. - Adicionando um atributo de sufixo à tag de diretório em
phpunit.xmlpara especificar "Testes" como o sufixo explícito.
tests/GeneralStringFunctions/GeneralStringFunctionsTestuma pasta ou um nome de arquivo?