Feeds:
Posts
Comentários

Archive for abril \28\UTC 2008

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

Read Full Post »