autotest + growl で楽々テスト
もっと早くからやっておけばよかったです。
autotest を使うと Rails でのテスト実行が格段に楽になります。コードを編集しファイルを保存した瞬間、テストを自動実行してくれるので、いちいち開発 <-> テストの各作業の切り替えが必要なく、開発している間中ずっと裏でテストを実行し続けてくれるのです。
さらに mac だと growl と連携できるため、いちいち autotest を実行しているコンソールを開く必要がなく、さらに快適。
以下の情報源を参考にさせていただいたのですが、本日(2008/12/10)時点での各アプリケーションのバージョンの違いや環境の違いからか、そのままではうまく動かないところがありました。メモ代わりに自分の環境でおこなった手順を書き留めておきます。
参考にした情報源
- autotestのGrowl通知をカスタマイズする - ザリガニが見ていた...。
- growlとautotestを連携させる - Hello, world! - s21g
- Get your Rails tests results via Growl notifications | redemption in a blog
- Internaut Design - Green goodness with autotest + growl
autotest をインストール・設定
sudo gem install ZenTest
でインストールできます。
sudo cp /Library/Ruby/Gems/1.8/gems/ZenTest-3.11.0/example_dot_autotest.rb RAILS_ROOT/.autotest
で、設定ファイルのひな形をRailsアプリケーションのルートフォルダ以下にコピーし、以下のように編集します。
.
.
# require 'autotest/rcov'
require 'autotest/redgreen' <== コメントアウトをはずす
# require 'autotest/restart'
.
.
Growl と連携させる
Growlのページより Growl 1.1.4 をダウンロードします。(Growl がインストールされていなければインストール)
以下の手順で、growlnotify をインストールします。
% cd /Volumes/Growl-1.1.4/Extras/growlnotify
% sudo ./install.sh
次に Growl の設定。Growl の環境設定を開き、以下のように「受信される通知を聞く」と「リモートアプリケーション登録を許可」のチェックを入れておきます。
表示オプションも次のように変更して、見やすくしておきます。
このあたりの設定は、
» テストはとことん自動で楽しく...。 - ザリガニが見ていた...。
で書かれているとおりそのままなのですが、「Mac OSX 10.5 Leopardでgrowlnotifyを利用する為に」の手順は飛ばしても私の環境ではうまく動きました。(後述する growlnotify の -H localhost オプションを追加したことが関係するのかもしれません)
通知メッセージとともに表示するアイコンの画像を用意します。
% mkdir ~/.autotest_icons
% cd ~/.autotest_icons
% wget http://blog.internautdesign.com/files/rails_ok.png
% wget http://blog.internautdesign.com/files/rails_fail.png
autotest の設定にもどり、RAILS_ROOT/.autotest の最後に以下を追加します。
この部分も基本的には、
» テストはとことん自動で楽しく...。 - ザリガニが見ていた...。
を参考にしたのですが、4行目の部分が以下のままだと、autotest を実行しても、通知が来たり来なかったりと不安定でした。
system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"
» growlとautotestを連携させる - Hello, world! - s21g
を参考にして、-H localhost(赤字部分)を追加したところ、ちゃんと通知されるようになりました。
system "growlnotify -n autotest -H localhost --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"
以上で設定終了。
% cd RAILS_ROOT
% autotest
で autotest を実行すれば、テストがおこなわれるたびに結果が Growl で通知されるようになります。
2008/12/10 13:51:48