terça-feira, 6 de setembro de 2011

Codeigniter 2 + CIUnit (parte 1)

Baixar  a versão mais recente do Codeigniter no repositório do projeto
$ wget https://github.com/EllisLab/CodeIgniter
Instalar a versão mais recente do phpunit
$ pear channel-discover pear.phpunit.de
$ pear channel-discover components.ez.no
$ pear channel-discover pear.symfony-project.com
$ pear install phpunit/PHPUnit

Integrando o phpunit ao CI 2
A equipe de desenvolvimento do Codeigniter está trabalhando para integrar o PHPUnit com o core do framework. Um novo branch foi criado e pode ser acompanhado no github do projeto.
https://github.com/EllisLab/CodeIgniter/tree/feature/unit-tests

Enquanto a integração oficial não é finalizada uma boa alternativa é o uso do CIUnit.
Baixar o fork para o CI 2.0 do CIUnit no repositório. (https://bitbucket.org/kenjis/my-ciunit ou https://github.com/fukata/CIUnit-for-CI2) e seguir as instruções de instalação e uso do arquivo README.
cp ciunit/application/third_party/CIUnit   my-ci-app//application/third_party/CIUnit
cp ciunit/tests   my-ci-app/tests


Configurar as conexões
Alterar o arquivo de configuração de conexões da aplicação para trabalhar com o database de teste:
$ vi /my-ci-app/application/config/database.php
Criar os databases:
$ mysqladmin -u root -p create exercise academico
$ mysqladmin -u root -p create exercise academico_test

Verificar se tudo funciona
O CIUnit vem com alguns arquivos de teste de exemplo que podemos utilizar para verificar se tudo está corretamente instalado.

Criar a tabela do modelo
Testar a aplicação no melhor estilo TDD, baby-steps. Red-Green
$ cd my-ci-app/tests
$ phpunit
Barra vermelha (red)!  Criar o modelo em my-ci-app/application/models/phone_carrier_model.phpe rodar os testes mais uma vez.
$ phpunit
Agora é só implementar a funcionalidade do modelo e ver a barra verde
Código da aplicação em https://github.com/fcm/codeigniter-academic

Referências:
https://github.com/EllisLab/CodeIgniter/tree/feature/unit-testsasdasd
https://bitbucket.org/kenjis/my-ciunit
https://github.com/fukata/CIUnit-for-CI2
https://github.com/EllisLab/CodeIgniter

Nenhum comentário:

Postar um comentário