以前、ログをトレースしながらautotestを走らせる方法を紹介しましたが、 今回はさらにその方法を拡張して、script/consoleも同時に実行してしまう 方法を紹介します。

ちなみに以前紹介した方法は、こんな感じでした。

% tail -f log/development.log &
% autotest

tail -f log/development.log &でloggerの出力をバックグラウンドで補足しつつ、フォアグラウンドではautotestを実行しています。

今回は、autotestもさらにバックグラウンドで起動させて、 フォアグラウンドで./script/consoleを実行させるのですが、 一つ問題があります。

autotestは、migrationの実行などでDBの中身が変わった場合など、 Ctrl+CでINTを送ってリロードさせる必要があるのですが、 バックグラウンドプロセスにしてしまうと、Ctrl+Cでリロード できなくなってしまいます。

そこで、autotestのリロードを script/consle の中から行えるように するプラグインを作りました。

インストール方法は、通常のRailsプラグインと同様です。

% ./script/plugin install http://svn.s21g.com/public/rails/plugins/trident/

使い方は、モニタリング用のコンソールから以下のRakeタスクを実行します。

% rake trident

すると、tail -f log/development.logautotestが実行され、 script/consoleが立ち上がります。

この状態で、autotestをリロードさせる場合、script/consoleから

> Trident.reload

を実行すればOKです。

終了するときは、普通にscript/cosoleexitすると、生成された子プロセスと一緒に終了します。

posted by Png genki on Fri 16 Nov 2007 at 06:51

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry196
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ