autotestがうまく動かないのでソースコード読もうとしたら、同一フォルダ内にautospecなるもの発見。
ぐぐったらこっちでRSpecが動くらしい。
今までの苦労はなんだったんだ・・・
とりあえず、あとでまとめを書こう。
インストールするもの。
GrowlとGrowlnotifyはGrowlをDLしてきてインストール。
RSpec, ZenTest, RedGreen, ruby-growl
$sudo gem install rspec $sudo gem install ZenTest $sudo gem install RedGreen $sudo gem install redgreen $sudo gem install ruby-growl
$gem search redgreen *** REMOTE GEMS *** redgreen (1.2.2) RedGreen (1.0)
RedGreenとredgreenがあるから両方入れてみた。
ホームディレクトリに.autotestを作る。
cp /opt/local/lib/ruby/gems/1.8/gems/ZenTest-3.11.0/example_dot_autotest.rb ~/.autotest
もってきた.autotestを編集。
require 'autotest/redgreen' #コメントを外す #以下追加 module Autotest::Growl def self.growl title, msg, img="~/.rails_ok.png", pri=0, sticky="" msg += " at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}" system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}" end Autotest.add_hook :ran_command do |at| results = [at.results].flatten.join("\n") output = results.slice(/\d+\s+examples?,\s*(\d+)\s+failures?/) if output if $~[1].to_i > 0 growl "Tests Failed", "#{output}", "~/.rails_fail.png", 2, "-s" else growl "Tests Passed", "#{output}", "~/.rails_ok.png", -2 end else growl "Tests Errored", "errors", "~/.rails_fail.png", 2, "-s" end end end
画像はどっかから持ってきたけど、どこかだったか忘れたので探してください。
あとは、自動的にspecをしたいフォルダでautospecを起動
$ autospec
これでlibとspecフォルダの中身を見て変更があったら自動でspecをしてくれるらしい。
ちなみに、specファイルには
require 'rubygems'$ require 'spec'$
を入れておかないとエラーが出るので注意。
参考サイト
http://d.hatena.ne.jp/gan2/20080413/1208081539
http://niku.name/20081123.html
http://iket.tumblr.com/post/57288486/autospec
http://d.hatena.ne.jp/zariganitosh/20080312/1205305079