22 Feb
mad

mad il 22 February 2008 parla di Rails Snippet

Rails su OSX: Autotest + Growl

Affascinato dalla presentazione di Gregg Pollack di RailsEnvy.com ho deciso di lanciarmi nel mondo di Rspec con Autotest!

Per partire ultra-comodo l’ho integrato col Growl di modo che so quando la unit passa/fallisce i test senza tenere d’occhio il terminale.

Se non hai Autotest e t’intriga l’idea:

$ sudo gem install ZenTest

Da qui scarichi Growl .

Installato Growl per installare il GrowlNotify:

  • apri il terminale
$ cd /Volumes/{la directory dell'immagine di growl}/Extras/growlnotify
$ sudo ./install.sh

in ogni caso qui trovi un link alla guida di installazione di growlnotify

poi inserisci questo script nel file ~/.autotest:

module Autotest::Growl  

  def self.image_dir
    "~/Library/autotest"
  end

  Autotest.add_hook :ran_command do |at|
    result = at.results.last
    unless result.nil?
      output = result.slice(/, (\d+\s\w+)/)
      puts "\n"
      # puts "\n--Out: #{output} \n--\n"
      case output
        when /[1-9]/  : status, priority = "fail",  "High"
        when /0/      : status, priority = "pass",  "Normal"
        else            
          status, priority = "error", "Moderate"
          output = "nil"
      end

      growl_notify status, "Test Results", output.gsub(", ", ""), "#{self.image_dir}/rails_#{status}.png", priority #, '-s'
    end
  end

  def self.growl_notify status, title, out, img, pri=0, stick="" 
    system "growlnotify -n autotest_#{status} --image #{img} -p #{pri} -m '#{out.inspect}' #{title} #{stick}" 
    # growlnotify -n autotest_pass --image ~/Library/autotest/rails_pass.png -m 'test'
  end

end

queste sono le icone che uso gentilmente offerte da blog.InternautDesign.com :-)

Icona test rails pass Icona test rails fail

piazzale nella directory image_dir dello script “~/Library/autotest” (va creata prima)

Ora puoi entrare nella directory della tua app e lanciare il comando:

$ autotest

(se è andato tutto bene) apparirà la notifica Growl (di default è un baloon celeste in alto a destra):

Test Pass Screen

o (molto più probabilmente, almeno nel mio caso) questa: Test Fail Screen

quando falliscono i test. :-)

Per cambiare le impostazioni della notifica Growl basta andare nelle Preferenze di Sistema > Growl

Preferenze Growl esempio musicvideo

Poi quando sono stati lanciati almeno una volta, gli eventi appariranno in Growl > Applications

Growl application tab

Selezionandone uno e cliccando su Configure… puoi impostare i vari settings ( questi sono quelli dello screencast di Gregg Pollack :-] ) Growl autotest_pass

Spero che gli esempi-guida vi siano stati di aiuto, per qualsiasi cosa lasciate un commento.

Buon (Auto)Testing!

Edit: Aggiornato lo script per supportare la nuova versione di ZenTest (3.9.2)

1 Commento a “Rails su OSX: Autotest + Growl”

  1. Davide il 22 February 2008 alle 17:09 dice:

    Che figata. Queste sono le cose che mi ricordano quanto sono fortunato a usare un mac :)

Scrivi un commento