Autotest, Growl und RSpec

John Nunemaker beschreibt in Autotest Growl Pass/Fail Notifications wie man mit Growl sich die Ergebnisse von Autotest darstellen lassen kann. Hierzu muß man nur eine ~/.autotest-Datei anlegen, die die Benachrichtigunren anzeigt. Anscheinend haben jedoch letzte Änderungen in RSpec diese Beispielskripte unwirksam gemacht. Schuld ist das Ausgabeformat des Testlaufs. Doch mit wenigen Änderungen kann man das wieder hinbiegen. Nun klappen die Growl-Benachrichtigungen bei mir. Hier ist die ~/.autotest-Datei, die ich benutze. (Ich habe auch die Bilder an einen anderen Ort abgelegt)

require 'autotest/redgreen'
require 'autotest/timestamp'

module Autotest::Growl

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

  Autotest.add_hook :ran_command do |at|
    image_root = "~/Library/Autotest/Images"
    results = [at.results].flatten.join("
")
    output = results.slice(/(\d+)\sexamples*,\s(\d+)\sfailures*/)
    if output
      if $~[2].to_i > 0
        growl "FAIL", "#{output}", "#{image_root}/fail.png", 1
      else
        growl "Pass", "#{output}", "#{image_root}/pass.png"
      end
    end
  end
end

Leave a Reply

Your email address will not be published.