guardを使ってソース編集後にテストを自動実行する
何かソースを変更した時に、テストを実行して動作を確認すると思いますが、いちいち
$ bundle exec rspec spec/~~~~
のように入力して確認するのも面倒だと感じることもあるかと思います。
そういう場合はguardを使ってテストの実行をdaemon化するのも良いと思います。
guardの設定は次のようのステップになります。
1.Gemfileに追加
gem 'guard' gem 'guard-rspec', ' ~> 0.4.2' gem 'guard-spring'
2.bundle installを実行
3.Guardの設定ファイルを生成
$ bundle exec guard init rspec
以下のようなGuardfileが生成される
guard :rspec, spring: true do watch(%r{^spec/.+_spec\.rb$}) watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } watch('spec/spec_helper.rb') { 'spec' } watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } watch(%r{^spec/factories/(.+)\.rb$}) { 'spec/factories_spec.rb' } watch(%r{^spec/support/(.+)\.rb$}) { 'spec' } watch('config/routes.rb') { 'spec/routing' } watch('app/controllers/application_controller.rb') { 'spec/controllers' } end
これで準備完了。
このGuardfileをみると何となく分かると思いますが、各ファイル(例えばapp/models)を編集したらそれに相当するテストが実行されます。