Após um longo tempo tentando fazer funcionar as notificações dos testes com o Rails no meu recém instalado Ubuntu 8.04 (hardy) sem muito sucesso, finalmente cheguei a uma resposta.
a Combinação foi a seguinte:
1. ZenTest (ZenTest 3.9.2), o Framework de testes propriamente dito.
$sudo gem install ZenTest
2. RedGreen (redgreen 1.2.2), para colorizar o resultado dos testes, fica mais atrativo e fácil de verificar os resultados
$sudo gem install redgreen
3. libnotify-bin, pacote presente nos repositórios do ubuntu para enviar mensagens de notificação ao desktop
$sudo apt-get install libnotify-bin
4. Arquivo de configuração do autotest colocado no meu diretório home ~/.autotest
neste caso:
$gedit ~/.autotest
e coloque o código a seguir:
# ~/.autotest
module Autotest::GnomeNotify
EXPIRATION_IN_SECONDS = 8
FAIL_IMAGE = "gtk-dialog-error"
PENDING_IMAGE = "gtk-dialog-warning"
SUCCESS_IMAGE = "gtk-dialog-info"
# FAIL_IMAGE = "~/Imagens/rails_fail.png"
# PENDING_IMAGE = "~/Imagens/rails_pending.png"
# SUCCESS_IMAGE = "~/Imagens/rails_success.png"
def self.notify title, message, stock_icon
options = "-t #{EXPIRATION_IN_SECONDS * 1000} -i #{stock_icon}"
system "notify-send #{options} '#{title}' '#{message}'"
end
Autotest.add_hook :ran_command do |at|
result = at.results.last
if result
examples = result =~ /(\d+) examples/ ? $1.to_i : 0
failures = result =~ /(\d+) failure/ ? $1.to_i : 0
pendings = result =~ /(\d+) pending/ ? $1.to_i : 0
if failures > 0
notify "Tests Failed", "#{failures} test#{ 's' if failures > 1 } failed", FAIL_IMAGE
elsif pendings > 0
notify "Tests Pending", "#{pendings} test#{ pendings == 1 ? ' is pending' : 's are pending'}", PENDING_IMAGE
else
notify "Tests Passed", "All tests passed", SUCCESS_IMAGE
end
end
end
end
copie e cole o código ou faça o download aqui de um arquivo no formato do openoffice (o wordpress nao permite fazer o upload de qualquer tipo de arquivo) com o conteúdo descrito acima. Copie o conteúdo e cole em seu ~/.autotest.
Dica: Você pode personalizar as imagens, colocando o caminho de uma imagem da sua preferência, assim como eu faço na parte do código do .autotest que está comantada:
# FAIL_IMAGE = "~/Imagens/rails_fail.png" # PENDING_IMAGE = "~/Imagens/rails_pending.png" # SUCCESS_IMAGE = "~/Imagens/rails_success.png"
Feito isto, tive minhas notificações de teste funcionando perfeitamente como podem visualizar neste screenshot:
para fazer os testes, escreva-os, vá até o diretório do seu projeto e
$autotest
isto supondo que você já tenha o ruby e o rails previamente instalado e funcionando perfeitamente
obs o código original foi retirado daqui




