I was experiencing problems with running specs with autotest. By default it's configured to run only Test::Unit files and googling around retrieved several solutions. Some of them included creating ~/.autotest file which is read before any autotest session. In that file you should add

Autotest.add_hook :ran_command do |at|
  at.add_mapping(%r{^lib/.*\.rb$}) {|f, _|
    Dir['spec/**/*.rb']
  }
end

This however, didn't work for me. Running autotest -v provided verbose output including:

No tests matched spec/requests/emails_about_cancellation.rb
No tests matched spec/requests/emails_when_owner_schedules.rb
No tests matched spec/helpers/showings_helper_spec.rb

So basically autotest was unable to recognize rspec for some reason.

After an hour of research I've finally found the solution which is as simple as:

$ autotest -s rspec2

And now the autotest runs my specs and is watching them for changes. Why is this not documented anywhere remains a mystery to me.

Written by

Hrvoje Šimić

@shimewastaken