Php Unit, coverage report puro e simples

Teste unitário com php é luxo! Todo mundo quer ter mais niguém tem. 

Se liga aí que agora vou mostrar, sem complicação! puro e simples! No PHP limpo e seco! sem framework! 

Imagem

Primeiro baixe esse zip -> aqui

Descompacte na pasta que quiser e depois adicione a pasta no path do windows:

Imagem

No meu caso adicionei na pasta do meu usuário. Se não souber adicionar uma pasta no path do windows, olhe no google!! Te vira!!

Feito isso vamos verificar se deu certo digitando o comando:

 phpunit --version

Se dé rock, vai aparecer a versão do phpunit, se se não, volte para o google!

Baixe o apache ant e adicione no path. Mas no caso do Ant adicione na variável de ambiente ANT_HOME:

Imagem

Se você está lendo esse post, você já deve ter o php e apache instalado, se não tiver, olhe no google. Se não souber o que é PHP, não continue nem lendo, desligue o computador, fique um minuto olhando para a tela. Se não aparecer a perna cabeluda nem a loura do banherio, vá embora. Melhor coisa que você faz.

Bixe esse outro arquivo  aqui esse é nosso projeto de exemplo. Um projeto fake só de migé. Que sumula um projeto real com arquivos de configuração, classes de teste e etc... Eu abri no netbeans, mas se preferir, pode abrir esse projeto na IDE que quiser.

 Imagem

Observe que nossa aplicação está concentrada na pasta aplicacao. Dentro da pasta tests tem uma pasta chamada aplicacao.

A pasta aplicacao que fica dentro de tests é um relexo da nossa aplicação. Deve ter a mesma estrutura de pasta da nossa aplicação para facilitar a localização da classe de teste correspondente a classe implementada.

Note que o nome também é o mesmo com a palavra Test no final indicando que a classe MatematicaTest é a classe de teste da classe Matemática. Está tão óbvio que estou parecendo um retardado explicando.

 Vamos rodar o teste. no prompt de comando do windows, vá até a pasta tests e execute o comando:

 phpunit

O resultado deve ser esse:

Imagem

Rodou um test e um assertion com sucesso!

Agora vamos abrir o relatório de cobertura de teste na pasta build/coverage:

Imagem

Imagem

Resultado total: nosso projeto está 14,29% coberto de teste.

Agora vamos clicar em Matematica.php

Imagem

O método soma está verde indicando que ele está coberto por teste. Logo os outros métodos estão em vermelho por que não estão coberto por teste e assim por diante.

Agora vamos supor que meu projeto tem mais de 50 classes de teste e estou implementando mais uma. Normalmente essa que estou implementando vou precisar rodar várias vezes durante a implementação. E normalmente 50 testes demoram mais para rodar e seria muito cansativo ter que rodar 50 testes junto com o teste que estou implementando. Para resolver esse problema, você pode executar esse comando 

 phpunit --bootstrap ./bootstrap.php aplicacao/MatematicaTest.php

para executar somente uma classe de teste. Desse forma você roda várias vezes somente o teste que está implementando e quando terminar a implementeação, executa o comando phpunit para rodar todas as classes de teste da aplicação.

Exsite também na raiz o proejto um arquivo chamado build.xml 

É um arquivo com a sintaxe do Apache ant que vai fazer o build do proejto. Para executar esse build, vá até a raiz do proejto e execute o comando:

 ant build

O resultado deve ser esse:

Imagem

Nesse exemplo, o script build.xml gerou um arquivo do projeto compactado em ProjetoTeste.zip

A partir daí você pode personalizar esse script para fazer vários procedimentos automatizados nesse build.xml

 

Comentários

 

(há 3 anos) Gabriela Rosa Machado Linhares:

Jovem, isso daqui tá muito bom hein!

SafaJenkins!!

[responder]
 
(há 3 anos) Davi Sousa:

Valeu Gabiiii!! :P

Quem Sou

Graduado em ADS (Análise e desenvolvimento de sistemas).

Não sou "devoto" de nenhuma linguagem de programação. Procuro aproveitar o melhor de cada uma de acordo com a necessidade do projeto. Prezo por uma arquitetura bem feita, código limpo, puro e simples! 

anuncio atendente