以前、ログをトレースしながら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.logとautotestが実行され、script/consoleが立ち上がります。
この状態で、autotestをリロードさせる場合、script/consoleから
> Trident.reload
を実行すればOKです。
終了するときは、普通にscript/cosoleをexitすると、生成された子プロセスと一緒に終了します。
posted by
genki on Fri 16 Nov 2007 at 10:54 with 0 comments