Guardを使ってRuby on Railsプロジェクトのテストを自動化する
いつもRuby on Railsのテストは、
Sublime TextにRubyTestを入れて Cmd + R でテストを走らせてますが、
Guardを使って自動化するメモ。
手順は以下です。
Gemfile
group :development, :test do . . gem 'guard-rspec', '2.5.0' end group :test do # 通知センター連携 gem 'terminal-notifier-guard' end
インストール
$ bundle install
Guard の初期化
$ bundle exec guard init rspec
Guardfileが生成されるので、こちらを変更。
# inflector追加 require 'active_support/inflector' # テストが失敗した時点で停止するようにする guard 'rspec', all_after_pass: false do # 以下を追加 watch(%r{^app/controllers/(.+)_(controller)\.rb$}) do |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb", (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : "spec/requests/#{m[1].singularize}_pages_spec.rb")] end watch(%r{^app/views/(.+)/}) do |m| (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : "spec/requests/#{m[1].singularize}_pages_spec.rb") end watch(%r{^app/controllers/sessions_controller\.rb$}) do |m| "spec/requests/authentication_pages_spec.rb" end . . end
Guardを実行する
$ bundle exec guard
Guardを停止する
[1] guard(main)> exit