I’m going through Hartl’s Rails tutorial, which now uses Rails 4.2 and
Guard with minitest.
Having Guard up and running does not automatically run tests; I have to
press Enter to trigger the tests.
I can get the tests to run automatically upon starting Guard by changing
“guard :minitest, spring: true, all_on_start: false do” in the Guardfile
to
“guard :minitest, spring: true do”. (This change means that the
all_on_start parameter is set to true by default.)
How can I get the tests to run automatically when I modify files in the
app? While I don’t need this automatic testing to get through
railstutorial.org, I want to have this capability for working on more
serious apps. I’d like the tests to begin BEFORE I click on the
terminal
window that I have dedicated to Guard testing.
you need some watch directives in the Guardfile
you need some watch directives in the Guardfile, like so:
guard :rspec, cmd: ‘bundle exec rspec’ do
watch(%r{^spec/support/(.+).rb$}) { “spec” }
watch(‘spec/spec_helper.rb’) { “spec” }
watch(%r{^spec/.+_spec.rb$})
watch(%r{^app/(.+).rb$}) { |m| “spec/#{m[1]}_spec.rb” }
watch(%r{^app/controllers/(.+).rb$}) { |m|
“spec/integration/#{m[1]}_spec.rb” }
watch(%r{^app/models/(.+).rb$}) { |m| “spec/unit/#{m[1]}_spec.rb” }
end
I’ve tried out the complete sample app from
GitHub - mhartl/sample_app_3rd_edition: The sample app for the 3rd edition of the Ruby on Rails Tutorial to ensure that I didn’t
overlook something.
Now I realize that Guard does respond by automatically executing a test
when one of the files it watches changes. Unfortunately, it takes a few
MINUTES to respond and doesn’t even provide any visible indication
during
these minutes. I should note that my normal development environment is
in
Vagrant.
Why does Guard respond so slowly? Spring is supposed to speed up the
testing process, but I have a hard time believing that it’s
accomplishing
anything.
Have you installed the correct inotify bindings or is guard Running in
fallback Mode?
Am 10.01.2015 07:10 schrieb “Jason H., Rubyist” [email protected]: