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 .php
extensão. O GeneralStringFunctionsTest mencionado acima é na verdade um GeneralStringFunctionsTest.php
arquivo.
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.xml
em 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.xml
paratests/GeneralStringFunctions
- Mudando o diretório
phpunit.xml
para./tests
- Movendo o
phpunit.xml
arquivo para otests
diretório e alterando o diretório em./
vez detests
. - Adicionando um atributo de sufixo à tag de diretório em
phpunit.xml
para especificar "Testes" como o sufixo explícito.
tests/GeneralStringFunctions/GeneralStringFunctionsTest
uma pasta ou um nome de arquivo?