僕は発展途上技術者

autotest + growl で楽々テスト

もっと早くからやっておけばよかったです。

autotest を使うと Rails でのテスト実行が格段に楽になります。コードを編集しファイルを保存した瞬間、テストを自動実行してくれるので、いちいち開発 <-> テストの各作業の切り替えが必要なく、開発している間中ずっと裏でテストを実行し続けてくれるのです。

さらに mac だと growl と連携できるため、いちいち autotest を実行しているコンソールを開く必要がなく、さらに快適。

以下の情報源を参考にさせていただいたのですが、本日(2008/12/10)時点での各アプリケーションのバージョンの違いや環境の違いからか、そのままではうまく動かないところがありました。メモ代わりに自分の環境でおこなった手順を書き留めておきます。

参考にした情報源

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 の環境設定を開き、以下のように「受信される通知を聞く」と「リモートアプリケーション登録を許可」のチェックを入れておきます。

growl-1.png

表示オプションも次のように変更して、見やすくしておきます。

growl-2.png

このあたりの設定は、

» テストはとことん自動で楽しく...。 - ザリガニが見ていた...。

で書かれているとおりそのままなのですが、「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 で通知されるようになります。

Comments


(Option)


Recent Entries

Recent Comments

Tags

Archives

Admin