1) Edit the Gemfile:
group :development, :test do gem 'guard-rspec', '1.2.1' end # Add System-dependent gems group :test do gem 'capybara', '1.1.2' # Test gems on Macintosh OS X gem 'rb-fsevent', '0.9.1', :require => false gem 'growl', '1.0.3' # Test gems on Linux gem 'rb-inotify', '0.8.8' gem 'libnotify', '0.5.9' # Test gems on Windows gem 'rb-fchange', '0.0.5' gem 'rb-notifu', '0.0.4' gem 'win32console', '1.3.0' end
2) Run the bundler.
$ bundle install
3) Initialize Guard so that it works with RSpec.
$ bundle exec guard init rspec
4) Edit the resulting Guardfile so that Guard will run the right tests when the integration tests and views are updated
require 'active_support/core_ext' guard 'rspec', :version => 2, :all_after_pass => false do # Ensures that Guard doesnt run all the tests after a failing test (to speed up the Red-Green-Refactor cycle). . . . 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 . . . end
5) Start guard
$ bundle exec guard
NOTE:
To clear the screen everytime guard runs, add -c parameter. Ex: guard -c
If you get a Guard error complaining about the absence of a spec/routing directory, you can fix it by creating an empty one: $ mkdir spec/routing
0 comments:
Post a Comment