テストの度にコマンドラインで実行するのも面倒な作業です。なのでファイルが更新されたら勝手にテストが実行されるといい感じです。
世の中そういうパッケージがすでにあってGuardといいます。
まずGemfileにパッケージを追加します。
group :development, :test do .... gem 'guard' gem 'guard-minitest' end
新しくパッケージを追加したので更新します
>bundle update
さらに初期化を行います
>bundle exec guard init 14:30:31 - INFO - Writing new Guardfile to /Users/shintarokubota/Desktop/workspace/prog/service/Mountain/Guardfile 14:30:31 - INFO - minitest guard added to Guardfile, feel free to edit it
Guardfileというファイルができいろいろな設定ができるようです。
ただ設定は結構わかりにくいので「Ruby on Rails Tutorial」からパクります。
https://bitbucket.org/railstutorial/sample_app_4th_ed/raw/289fcb83f1cd72b51c05fe9319277d590d51f0d2/Guardfile
またSpringという機能を使っていてGitと競合するらしいので、Springのファイルを無視する様に設定します。
.gitignoreファイルの一番下に以下を追加
... #Ignore Sprint files. /spring/*.pid
ただし動作に不安定なところがあるらしくプロセスが残ることがあるらしいので、なんだか重くなってきたなあと思ったらプロセスを確認してkillしてやる必要があるようです。
本題に戻ります。
Guardの設定は異常なので別のターミナルを開いてguardを実行して監視するようにします。
>bundle exec guard
これで監視開始です!
何かファイルを変更してみましょう。ターミナルが勝手に動き出します!