Dessa vez, um post mais técnico. Neste artigo, vou explicar como se executar os seus testes em rspec de forma automática e integrada ao sistema de notificações do Gnome.
Uma forma muito interessante de se trabalhar com testes em ruby é através da utilização do Autotest. Para quem não conhece, o Autotest é uma ferramenta que, quando executada na raíz de um projeto um rails, ela fica observando o diretório e, para cada mudança nos arquivos do projeto, ela executa os testes relacionados para certificar que estas não quebraram alguma coisa.
O Rspec é um framework para a Behaviour Driven Development para aplicações em Ruby. Não vou entrar em maiores detalhes por aqui, pois o farei nos próximos artigos quando falarei mais especificamente sobre ele. Por último, o Libnotify é uma biblioteca que, usando o D-BUS, permite que sejam exibidas informações em forma de notificações no ambiente GNOME.
Versões das bibliotecas utilizadas
ZenTest 3.9.1 Rspec 1.1.3 ruby-libnotify 0.3.3
Preparando o ambiente
Na criação deste artigo, foi utilizada a distribuição Ubuntu, em sua versão 7.10 (Gutsy gibbon) . Também assumo que você tenha as bibliotecas essenciais instaladas. Também assumo que você tenha instalado a biblioteca libnotify, para a exibição de mensagens
Caso não as tenha, instale-as com o seguinte comando no terminal. Certifique-se de ter habilitado o repositório multiverse no seu sistema.
sudo aptitude install build-essential ruby1.8-dev libnotify-dev libopenssl-ruby libgtk2-ruby1.8
Estou assumindo que você tenha instalado, também, o RSpec e o ZenTest. Certifique-se ter as versões mais atualizadas dos dois gems. O ZenTest 3.9.1 não funciona com versões anteriores à 1.1.3 do rspec devido a mudanças no autotest.
Caso não tenha qualquer um dos dois ou não tenha certeza de qual é a versão que você tem disponível em sua máquina, faça a instalação das versões mais recentes com o comando:
sudo gem install ZenTest sudo gem install rspec
* Atenção para as letras maiusculas em ZenTest.
Instalando
Instale a biblioteca de comunicação do ruby:
1º Baixe o ruby-libnotify aqui e descompacte o arquivo para o diretório de sua preferência. No momento em que escrevo este artigo, este se encontra na versão 0.3.3
2º Vá até o diretório e instale o ruby-libnotify com os seguintes comandos.
ruby extconf.rb
make
sudo make install
Configurando as notificações
Para exibir as notificações sobre os resultados dos testes, o ZenTest busca por suas configurações em um arquivo nos seguintes lugares, nesta respectiva ordem:
- Autotest
- AutotestSubClass
- ~/.autotest
- ./.autotest
Por último, um pouquinho de eye-candy :). O script autotest, exibe três ícones para notificar o usuário sobre o resultado dos testes.
- ~/fail.png -> Quando os testes falham
- ~/pending.png -> Quando os testes passam, mas ainda há testes que precisam ser especificados
- ~/pass.png -> Quando os testes são todos executados com sucesso
Eu uso no meu sistema as configurações propostas neste blog e que podem ser baixadas neste link.
Para utilizá-las, descompacte o arquivo autotest-libnotify.zip e mova o conteúdo da pasta autotest-libnotify/ para o seu diretório do usuário.
Aí vai uma screenshot de como ficou o resultado no meu sistema.

A facilidade em se ver o impacto das alterações que fazemos no sistema, no momento em que acabamos de fazê-la, faz com que o desenvolvimento se dê de maneira muito mais fácil e fluida.
A experiência de trabalhar desta forma, fez com que a minha relação com automatização de testes mudasse completamente.
Espero que este post lhe seja útil!
Um grande abraço e até a próxima.