Code Coverage - Help

5 views
Skip to first unread message

João José Pedrini

unread,
Jun 10, 2008, 5:21:01 PM6/10/08
to cake-...@googlegroups.com
Pessoal,

Estou tentando fazer o Code Coverage do CakepPHP funcionar, porém não estou conseguindo. O XDebug foi fácil de instalar (muito impressionante ele, vou estudar mais), porém o Code Coverage está fazendo meu Apache CRASHear.

Estou utilizando o XAMPP, testei algumas funções do XDebug perfeitamente, porém o Code Coverage, é só clicar nele que o Apache da problema (aparece aquela tela de reportar error para a Microsoft)

Quem tiver alguma luz... me fale!!
Abraços.

Renan Gonçalves

unread,
Jun 10, 2008, 10:30:16 PM6/10/08
to cake-...@googlegroups.com
João,

Há algum tempo venho tentando fazer o XDebug funcionar aqui também. Desde o primeiro release que teve o Code Coverage, mas em nenhuma das situações consegui.
Isso é aparentamente um bug no XDebug. Eu fiz uma debug na aplicação, quando ele começa a carregar as coisas do SimpleTest ele simplesmenta trava, como você disse.
Aplicando Code Coverage em pequenos códigos, como o exemplo que tem na página do XDebug, rola tudo ok. Porém com grande quantidade de cógido, como CakePHP, trava tudo.
O mais impressionante é que em nenhum lugar fica registrado o porque do erro, do crash e tudo. Apenas na telinha de erro do Windows aparece que veio do xdebug.dll.


Valeu!
--
Renan Gonçalves - Software Engineer
Cell Phone: +55 11 8633 6018
MSN: renan....@gmail.com
São Paulo - SP/Brazil

João José Pedrini

unread,
Jul 31, 2008, 1:58:57 PM7/31/08
to cake-...@googlegroups.com
Pessoal,

Alguém conseguiu rodar o Code Coverage do CakePHP?

Obrigado

2008/6/10 Renan Gonçalves <renan....@gmail.com>



--
João José Carvalho Pedrini

Juan Basso

unread,
Jul 31, 2008, 5:53:33 PM7/31/08
to Cake PHP Português
Uma vez tentei rodar também e deu o mesmo problema. Parece que é um
problema com o Windows.

Achei no link http://n2.nabble.com/Analyze-Code-Coverage-xdebug-error-td219892.html
que a versão 2.0.0 não dá esse problema. Tentei achar na net, mas não
achei...

A propósito, quem falou isso foi um ilustre participante aqui da
comunidade: Renan Gonçalves!


Juan Basso

On 31 jul, 14:58, "João José Pedrini" <joaoj...@usosim.com.br> wrote:
> Pessoal,
>
> Alguém conseguiu rodar o Code Coverage do CakePHP?
>
> Obrigado
>
> 2008/6/10 Renan Gonçalves <renan.sad...@gmail.com>
>
>
>
>
>
> > João,
>
> > Há algum tempo venho tentando fazer o XDebug funcionar aqui também. Desde o
> > primeiro release que teve o Code Coverage, mas em nenhuma das situações
> > consegui.
> > Isso é aparentamente um bug no XDebug. Eu fiz uma debug na aplicação,
> > quando ele começa a carregar as coisas do SimpleTest ele simplesmenta trava,
> > como você disse.
> > Aplicando Code Coverage em pequenos códigos, como o exemplo que tem na
> > página do XDebug, rola tudo ok. Porém com grande quantidade de cógido, como
> > CakePHP, trava tudo.
> > O mais impressionante é que em nenhum lugar fica registrado o porque do
> > erro, do crash e tudo. Apenas na telinha de erro do Windows aparece que veio
> > do xdebug.dll.
>
> > Valeu!
>
> > On 6/10/08, João José Pedrini <joaoj...@usosim.com.br> wrote:
>
> >> Pessoal,
>
> >> Estou tentando fazer o Code Coverage do CakepPHP funcionar, porém não
> >> estou conseguindo. O XDebug foi fácil de instalar (muito impressionante ele,
> >> vou estudar mais), porém o Code Coverage está fazendo meu Apache CRASHear.
>
> >> Estou utilizando o XAMPP, testei algumas funções do XDebug perfeitamente,
> >> porém o Code Coverage, é só clicar nele que o Apache da problema (aparece
> >> aquela tela de reportar error para a Microsoft)
>
> >> Quem tiver alguma luz... me fale!!
> >> Abraços.
>
> > --
> > Renan Gonçalves - Software Engineer
> > Cell Phone: +55 11 8633 6018
> > MSN: renan.sad...@gmail.com
> > São Paulo - SP/Brazil
>
> --
> João José Carvalho Pedrini- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -

João José Pedrini

unread,
Jul 31, 2008, 10:34:06 PM7/31/08
to cake-...@googlegroups.com
Bem pessoal,

Depois de umas tentativas hacker consegui os links dos downloads no site do XDebug (sempre esta embaixo do nosso nariz). Só que infelizmente aqui não consigo testar, vai ter que ficar para amanha:

PHP 5.1.2
http://xdebug.org/link.php?url=xdebug200rc4-512-win
(pode mudar os RC até 1)
PHP 5.2.1
http://xdebug.org/link.php?url=xdebug200rc4-521-win
(pode mudar os RC até 2)

Quem puder testar e mandar por e-mail se conseguiu, vou ficar muito feliz amanhã quando acordar

Abraços


2008/7/31 Juan Basso <jrb...@gmail.com>

Juan Basso

unread,
Aug 1, 2008, 12:34:19 PM8/1/08
to Cake PHP Português
Eu tentei umas tentativas, mas não acertei nenhuma hehehe.

Infelizmente eu não vou poder testar isso e deixar sua manhã mais
feliz. :) Eu estou indo viajar depois que eu sair do trabalho e só
volto a mexer no computador domingo a noite ou segunda.

Mas tomara que isso dê certo, pois aqui também estou querendo começar
nessa parte.

A propósito, vocês fazem testes só dos models/components/helpers, ou
de tudo? Não vejo muito como fazer testes em controllers e views, por
exemplo. Similam testes de falha de comunicação para ver o que
acontece na view ou é manualmente também?


Juan Basso

On 31 jul, 23:34, "João José Pedrini" <joaoj...@usosim.com.br> wrote:
> Bem pessoal,
>
> Depois de umas tentativas hacker consegui os links dos downloads no site do
> XDebug (sempre esta embaixo do nosso nariz). Só que infelizmente aqui não
> consigo testar, vai ter que ficar para amanha:
>
> PHP 5.1.2http://xdebug.org/link.php?url=xdebug200rc4-512-win
> (pode mudar os RC até 1)
> PHP 5.2.1http://xdebug.org/link.php?url=xdebug200rc4-521-win
> (pode mudar os RC até 2)
>
> Quem puder testar e mandar por e-mail se conseguiu, vou ficar muito feliz
> amanhã quando acordar
>
> Abraços
>
> 2008/7/31 Juan Basso <jrba...@gmail.com>

João José Pedrini

unread,
Aug 1, 2008, 1:17:31 PM8/1/08
to cake-...@googlegroups.com
Olá Juan,

Acabo de testar o XDebug 2.0.0 RC4 num Xampp Version 1.6.6a com PHP 5.2.5 e, para minha felicidade, funcionou!

Ainda não está totalmente como eu esperava mas estou fazendo alguns testes. Pelo o que eu estou vendo, o Code Coverage funciona muito bem para os testes do CORE do Cake. Tanto o teste por Grupo, tanto o teste Individual funcionam corretamente, do mesmo modo que o Tim Koschützki descreve em seu blog. Porém estou tendo alguns problemas para verificar os testes da minha aplicação. Vou testar mais algumas configurações e falo com vocês qualquer progresso.

Sobre os testes, acredito que sua dúvida se dê pelo fato que os testes de Model/Component/Helper são mais do tipo Unitário e os testes de Controller e Views são mais Funcionais. Deixe eu me explicar o porque.

Quando estamos trabalhando com Modelos, Componentes e Helpers, nós trabalhamos com retorno de funções, trabalhamos com as regras de negócio de cada funcionalidade. Imaginem o exemplo de um Model que tenha a função ultimosLancamentos, nós podemos encapsular os testes para este único método. Podemos criar cenários onde conseguimos explorar as possibilidades de retorno desta única funcionalidade. Estes tipos de teste de uma funcionalidade são chamados de unitários por esta característica encapsuladora, onde podemos abstrair o resto e testar somente um único método.

Já os testes funcionais ou de aceitação, são testes que visam verificar a integridade da interação entre várias funções. Geralmente são teste que transcreve um Caso de Uso (ou História). Estamos agora em um nível mais alto de abstração, onde testamos como várias funções interagem numa lógica de negócio. Os testes de aceitação nem sempre são possíveis de serem elaborados com técnicas de teste unitário (assertEqual, assertTrue, etc.), para isto foi criado algumas ferramenta de testes de aceitação. No CakePHP e SimpleTest, temos o WebTestCase. O WebTestCase é somente um browser virtual que possui funcionalidades de verificação e automação de atividades, exemplo: podemos falar para o WTC para verificar se o URL da página é igual a /usuario/login se eu clicar em login na página inicial. Essas são geralmente os testes que fazemos em cima de Controller e Views.

Existes algumas funções interessantes que o CakePHP implementa para podermos realizar nossos testes funcionais da maneira unitária. O testAction e assertTags, todos eles possibilitam que possamos testar nossos controller e views de uma maneira unitária. Eu sei que isto, muitas vezes, não é muito trivial, as vezes nós programamos nossos Controllers e Views de maneira que não conseguimos testar. As vezes não colocamos identificadores nos nossos elementos DOM na Views (ex: muitas pessoas não utilizam o titulo para identificar a localizacao do página, muitas vezes nem modificam o titulo, com isto, fica impossível verificar a localização utilizando o titulo), ou deixamos de setar variavel no controller ou outras práticas que podem impedir o teste unitário de um Action ou Controller.

Mas isto é normal, existe mesmo esta limitação nos testes (http://en.wikipedia.org/wiki/Test-driven_development#Limitations). O que não podemos fazer é utilizar esta limitação como desculpa para não testar. Existe um ditado no TDD que fala: Se não der para testar, não vale a pena nem programar.

Abraços.

2008/8/1 Juan Basso <jrb...@gmail.com>

João José Pedrini

unread,
Aug 1, 2008, 6:18:54 PM8/1/08
to cake-...@googlegroups.com
Só para falar,

O Code Coverage está funcionando aqui na minha máquina. Acho que meus código que não estão bem testados =P.

Abraços.
Reply all
Reply to author
Forward
0 new messages