Carlos Brando

Nome do Jogo

Autotest com Growl no Leopard

Para quem não sabe o Growl é um sistema de notificações via janelas flutuantes que se integra com os principais software para Mac, como o Skype, Transmission, Adium e até mesmo ao ZenTest (Autotest).

Antes de migrar meu Mac para o Leopard eu gostava muito de usar o Autotest com o Growl, mas depois da migração ele não funcionou mais.

Faz alguns dias que eu resolvi tentar novamente e descobri como colocar a integração entre o Autotest e o Growl para funcionar no Leopard. Vamos ao passo a passo:

A primeira coisa a fazer é baixar o Growl e instalar. Depois entre no terminal e execute:

/Volumes/Growl\ 1.1.2/Extras/growlnotify/install.sh

Esta linha de comando vai instalar o growlnotify na pasta /usr/local/bin.

Agora crie o arquivo ~/.autotest e abra-o no seu editor favorito (TextMate?), preencha o arquivo com o seguinte código:

# ~.autotest

require 'autotest/redgreen'
require 'autotest/growl'

module Autotest::Growl

  def self.growl title, msg, img="/Applications/Mail.app/Contents/Resources/Caution.tiff", pri=0
    title += " in #{Dir.pwd}"
    msg += " at #{Time.now.strftime("%I:%M %p")}"
    system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title}"
  end

  Autotest.add_hook :run do  |at|
     growl "autotest running", "Started"
   end

   Autotest.add_hook :red do |at|
     img = "/Users/carlosbrando/.autotest_images/fail.png"
     growl "Tests Failed", "#{at.files_to_test.size} tests failed", img, 2
   end

   Autotest.add_hook :green do |at|
     img = "/Users/carlosbrando/.autotest_images/pass.png"
     growl "Tests Passed", "Tests passed", img, -2 if at.tainted
   end

   Autotest.add_hook :all_good do |at|
     img = "/Users/carlosbrando/.autotest_images/fail.png"
     growl "Tests Passed", "All tests passed", img, -2 if at.tainted
   end

end

Lembre-se de alterar o nome do usuário para o seu nome, né…

Agora crie uma pasta chamada .autotest_images e jogue as duas imagens abaixo dentro dela.

pass.pngfail.png

Agora vamos instalar o ZenTest:

sudo gem install ZenTest

Pronto! Agora quando você rodar o autotest na sua aplicação Rails, será alertado de erros via Growl. Para rodar o Autotest, basta entrar na pasta onde está o seu projeto e executar o comando autotest.

Muito bom!

P.S.: Outra dica legal (talvez até melhor que a acima) é dar uma olhada neste gem que o Nando Vieira criou.

Comments