ruby on rails 3 - Guard w/RSpec2, Ruby1.9.3, Rails 3.1.3
guard livereload rails (2)
Estoy ejecutando Guard con éxito con las notificaciones proporcionadas por Libnotify.
funkdified@funkdified-laptop:~/railsprojects/sample_app$ guard
Guard uses Libnotify to send notifications.
Guard is now watching at ''/home/funkdified/railsprojects/sample_app''
Guard::RSpec is running, with RSpec 2!
Running all specs
...
Finished in 0.06053 seconds
3 examples, 0 failures
Si modifico el archivo de especificaciones, se me avisa sobre los resultados de la prueba, tanto en el terminal como con una notificación emergente. Si modifico un archivo de controlador, nuevamente las pruebas se ejecutan normalmente. Sin embargo, cuando modifico route.rb, todo se cae de cara y Guardia deja de funcionar normalmente y arroja un error. ¿Alguien tiene alguna idea?
Error:
Running: spec/routing
/home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `load'': cannot load such file -- /home/funkdified/railsprojects/sample_app/spec/routing (LoadError)
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `block in load_spec_files''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `map''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/configuration.rb:698:in `load_spec_files''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:22:in `run''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in `run_in_process''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in `run''
from /home/funkdified/.rvm/gems/ruby-1.9.3-p0@rails3tutorial/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in `block in autorun
Olvidé mencionar, si mato a Guard y reinicio (después de hacer cambios en route.rb), Guard vuelve a funcionar normalmente, sugiriendo que una prueba ha fallado:
funkdified@funkdified-laptop:~/railsprojects/sample_app$ guard
Guard uses Libnotify to send notifications.
Guard is now watching at ''/home/funkdified/railsprojects/sample_app''
Guard::RSpec is running, with RSpec 2!
Running all specs
..F
Failures:
1) PagesController GET ''about'' returns http success
Failure/Error: get ''about''
ActionController::RoutingError:
No route matches {:controller=>"pages", :action=>"about"}
# ./spec/controllers/pages_controller_spec.rb:22:in `block (3 levels) in <top (required)>''
Finished in 0.0576 seconds
3 examples, 1 failure
Failed examples:
rspec ./spec/controllers/pages_controller_spec.rb:21 # PagesController GET ''about'' returns http success
Creo que puede tener la siguiente línea en su Guardfile
:
watch(''config/routes.rb'') { "spec/routing" }
Si no tiene especificaciones en las spec/routing
, entonces no la carpeta que no necesita. Cambia la línea a:
watch(''config/routes.rb'') { "spec" }
Ahora, todas sus especificaciones se ejecutarán cuando actualice su archivo routes.rb
.
Revise su directorio de spec
. Debe tener un subdirectorio de enrutamiento para las especificaciones de enrutamiento. Si no, solo crea uno vacío. Al parecer, RSpec no crea ningún subdirectorio bajo la spec
cuando se ejecutan rails g rspec:install
, pero rails g rspec:install
espera que esté allí.