2011-03-01 10 views
32

encontramos con este error al probar el rubí en los carriles sección de tutoriales con rspec en una plataforma Windows usando jruby 1.6:en 'require': No existe el fichero a cargar - spec_helper

c:\rails_projects\sample_app>bundle exec rspec spec/ 
org/jruby/RubyKernel.java:1038:in `require': no such file to load -- spec_helper 
(LoadError) 
     from c:/rails_projects/sample_app/spec/controllers/pages_controller_spec .rb:1:in `(root)' 
     from org/jruby/RubyKernel.java:1063:in `load' 
     from c:/rails_projects/sample_app/spec/controllers/pages_controller_spec 
.rb:386:in `load_spec_files' 
     from org/jruby/RubyArray.java:2458:in `collect' 
     from c:/jruby-1.6.0.RC2/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspe 
c/core/configuration.rb:386:in `load_spec_files' 
     from c:/jruby-1.6.0.RC2/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspe 
c/core/command_line.rb:18:in `run' 
     from c:/jruby-1.6.0.RC2/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspe 
c/core/runner.rb:55:in `run_in_process' 
     from c:/jruby-1.6.0.RC2/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspe 
c/core/runner.rb:46:in `run' 
     from c:/jruby-1.6.0.RC2/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspe 
c/core/runner.rb:10:in `autorun' 
     from org/jruby/RubyProc.java:268:in `call' 
     from org/jruby/RubyProc.java:232:in `call' 

encontrado la respuesta que parece que falta en el tutorial:

c: \ rails_projects \ sample_app> raíles generan rspec: instalar

+0

¿Qué tutorial de Ruby on Rails? –

+0

@RyanBigg probablemente [esto] (http://ruby.railstutorial.org/chapters/static-pages#top) – Uko

+15

No falta en el tutorial. El comando en cuestión aparece en la introducción al Capítulo 3. (Confía en mí, lo sé, lo escribí. :-) – mhartl

Respuesta

55

Después de ejecutar

rails generate rspec:install 

Coloque sus *_spec.rb archivos bajo (en su ejemplo) c:\rails_projects\sample_app\spec\model. A continuación, especifique la ruta relativa con require_relative

require_relative '../spec_helper' 
+5

no use 'require_relative' - significa que a medida que mueve las pruebas, tendrá que seguir actualizando la ruta. Solo usa 'require 'spec_helper''. – sevenseacat

+0

Vengo del campamento C#, por lo que mi estilo Ruby es cuestionable en el mejor de los casos. Esta fue una manera rápida de hacer que las cosas funcionen. YMMV – GregC

12

Ejecutar el siguiente comando

c:\rails_projects\sample_app>rails generate rspec:install 

Esto pondrá el archivo spec_helper.rb en su directorio /spec

+0

Esto es todo. Gracias. – Francisco

4

Al ejecutar 'rails generate rspec:install', si ves 'Could not find generator rspec:install' mensaje de error, añada joya 'rspec-rails' dentro :developnent, :test grupo en su proyecto Gemfile como se muestra a continuación.

group :development, :test do 
    gem 'rspec-rails' 
end 

Después de esto, ejecutar 'bundle install' y continuar con 'rails generate rspec:install'

0

Esto podría ser de alguna utilidad - en caso rpsec no se ha instalado correctamente en un entorno de Win7.

rails3 rspec issue

0

tuve el mismo problema, pero por una razón diferente:

en mi bloque spork.prefork dentro de mi archivo spec_helper.rb tuve esta línea

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

pero dentro de uno de los archivos que se estaba requiriendo arriba (spec/support/some_helper_file.rb) fue una llamada require 'spec_helper'

eliminando esto innecesario, se ha resuelto el problema

Cuestiones relacionadas