Search code examples
ruby-on-railsrubyruby-on-rails-3guardminitest

Why is guard stopping?


I have a rails application that I just threw guard and minitest and my gaurd file is

guard 'minitest', :cli => '--drb --format doc --color' do
  # with Minitest::Unit
  watch(%r|^test/(.*)\/?test_(.*)\.rb|)
  watch(%r|^lib/(.*)([^/]+)\.rb|)     { |m| "test/#{m[1]}test_#{m[2]}.rb" }
  watch(%r|^test/test_helper\.rb|)    { "test" }

  # Rails
  watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/functional/#{m[1]}_test.rb" }
  watch(%r|^app/helpers/(.*)\.rb|)     { |m| "test/helpers/#{m[1]}_test.rb" }
  watch(%r|^app/models/(.*)\.rb|)      { |m| "test/unit/#{m[1]}_test.rb" }  
end

but when i run guard i get a command prompt

bundle exec guard
22:14:12 - INFO - Guard uses TerminalTitle to send notifications.
22:14:12 - INFO - Guard is now watching at '/Users/trace/Sites/application'
1.9.3 (main):0 > 2 + 2
=> 4

Why am i getting this prompt. Any ideas... here are some of the gems i am using

UPDATE...

when i run all minitest then the tests run...but why do i have to run that...any ideas


Solution

  • What your seeing is the Guard interactor, which makes use of Pry. Normally the prompt looks a bit different, so I assume you've a ~/.pryrc file with some configuration. With Guard 1.5.3, released yesterday, Guard ignores ~/.pryrc and only evaluates ~/.guardrc for the Pry configuration, so the normal Pry configuration is separated from the Guard Pry interactor.

    When you're seeing this prompt, it means that Guard is waiting and has nothing to do. You can now start working and Guard automatically starts testing your app with minitest according to your file modifications and watcher configuration, or you can manually trigger an action.

    You can get a list of the available actions with help guard. Some commands are generated depending on your Guard plugins and groups within your Guardfile. Here's an example of one of my projects:

    $ bundle exec guard 
    09:58:14 - INFO - Guard uses GNTP to send notifications.
    09:58:14 - INFO - Guard is now watching at '/Users/michi/Repositories/extranett'
    09:58:15 - INFO - Guard::Jasmine starts Unicorn test server on port 8888 in development environment.
    09:58:17 - INFO - Waiting for Jasmine test runner at http://dnndev.me:8888/jasmine
    09:58:23 - INFO - Run all Jasmine suites
    09:58:23 - INFO - Run Jasmine suite at http://dnndev.me:8888/jasmine
    09:58:41 - INFO - Finished in 8.853 seconds
    09:58:41 - INFO - 896 specs, 0 failures
    09:58:41 - INFO - Done.
    09:58:41 - INFO - Guard::RSpec is running
    09:58:41 - INFO - LiveReload 1.6 is waiting for a browser to connect.
    [1] guard(main)> help guard
    Guard
      all                Run all plugins.
      backend            Run all backend
      change             Trigger a file change.
      coffeescript       Run all coffeescript
      frontend           Run all frontend
      jasmine            Run all jasmine
      livereload         Run all livereload
      notification       Toggles the notifications.
      pause              Toggles the file listener.
      reload             Reload all plugins.
      rspec              Run all rspec
      show               Show all Guard plugins.
    [2] guard(main)> exit
    09:59:39 - INFO - Guard::Jasmine stops server.
    09:59:39 - INFO - Bye bye...