Existe uma aplicação para Mac OS chamada Growl. Através dessa é possível enviar notificações para serem exibidas no desktop.

Diversos programas o utilizam para enviar alertas ao usuário. Aproveitando essa característica, alguns desenvolvedores configuram o seu ambiente de desenvolvimento para receberem notificações com o resultado da execução dos testes da aplicação em desenvolvimento.

Caso você queria configurar, também, o seu ambiente de desenvolvimento, aconselho a leitura do post.

 

INSTALANDO O GROWL


Acesse http://growl.info e faça o download da aplicação.

A instalação do Growl é feita da mesma forma como outros aplicativos no Mac OS X, basta montar a imagem(.dmg) e arrastar o arquivo .app para dentro do diretório Applications.
É importante notar que, além da instalação da aplicação, é necessário instalar um “componente”. Para isso, execute o arquivo “install.sh” que se encontra dentro do diretório “Extras“:

./Extras/growlnotify/install.sh

Após executar o comando acima, o comando growlnotify estará disponível dentro do diretório /usr/local/bin  (Obs: É necessário que este path esteja configurado nas variáveis de ambiente) .

Para testar se tudo até aqui está funcionando corretamente, abra o terminal e execute o seguinte comando:

growlnotify -m "Testes com sucesso" Resultado  

Se tudo estiver ok, essa mensagem será enviada e exibida na sua tela. :)

Em caso de falha, verifique se as permissões setadas para o arquivo growlnotify e confirme se está liberado para execução. Feito isso, tente novamente o comando para enviar a mensagem.

 

INSTALANDO O RSPEC e ZenTest

Ainda dentro do terminal, execute:

sudo gem install rspec
sudo gem install ZenTest

CONFIGURANDO O AUTOTEST 

O ZenTest busca pelo arquivo de configuração em um arquivo nos seguintes lugares:

  • Autotest
  • AutotestSubClass
  • ~/.autotest
  • ./.autotest

Particularmente, criei o meu arquivo .autotest na raiz do meu home (~/.autotest)

no terminal, digite :

mate .autotest

Adicione o código abaixo dentro do arquivo e salve.

require 'autotest/redgreen'  

module Autotest::Growl
  def self.growl title, msg, img, pri=0, stick=""
    system "growlnotify -n autotest --image #{img} -p #{pri} -m #{ msg.inspect} #{title} #{stick}"
  end  

  Autotest.add_hook :ran_command do |autotest|
    filtered = autotest.results.grep(/\d+\s.*examples?/)
    output = filtered.empty? ? '' : filtered.last.slice(/(\d+)\s.*examples?,\s(\d+)\s.*failures?(?:,\s(\d+)\s.*pending)?/)
    if output =~ /[1-9]\sfailures?/
      growl "Test Results", "#{output}", "~/Library/Autotest/fail.png"
    elsif output =~ /pending/
      growl "Test Results", "#{output}", "~/Library/Autotest/pending.png"
    else
      growl "Test Results", "#{output}", "~/Library/Autotest/pass.png"
    end
  end  

end  

Autotest.add_hook :initialize do |at|
    %w{.svn .hg .git vendor}.each {|exception| at.add_exception(exception)}
end

 

CRIANDO UMA APLICAÇÃO EXEMPLO:

Com o terminal aberto, execute:

rails store
./script/generate rspec
./script/generate rspec_scaffold Product name:string description:text price:decimal recorded_at:datetime created_at:datetime updated_at:datetime
rake db:migrate
autospec

 

Caso você queira conferir as opções para o comando spec, basta:

rake -T spec

 

Pronto! Agora, para executar os seus testes, basta acessar a raiz do seu projeto e executar o comando “autospec” no terminal.

Como forma de ilustrar a saída, criei segue um screenshot da saída no desktop:

 

Espero que gostem!