Railsでテストを自動化する

By | 2018/04/11

テストの度にコマンドラインで実行するのも面倒な作業です。なのでファイルが更新されたら勝手にテストが実行されるといい感じです。
世の中そういうパッケージがすでにあって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

これで監視開始です!
何かファイルを変更してみましょう。ターミナルが勝手に動き出します!


コメントを残す

メールアドレスが公開されることはありません。