He estado usando pepino en mi aplicación, que es una aplicación de carriles 2.2.2 que se ejecuta en ruby 1.8.6 (la actualización no es una opción ahora). Pepino ha estado bien, ahora estoy tratando de usar Capibara. He instalado la gema capybara (1.1.1)
y puse la línea require 'capybara/rails'
en mi features/support/env.rb file
."requiere 'capybara/rails'" da "constante no inicializada Rack :: Builder"
Ahora, cuando corro pepino, me sale este error:
Using the default profile...
uninitialized constant Rack::Builder (NameError)
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:445:in `load_missing_constant'
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
/home/max/.rvm/gems/[email protected]/gems/capybara-1.1.1/lib/capybara/rails.rb:4
/home/max/.rvm/rubies/ruby-1.8.6-p420/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/home/max/.rvm/rubies/ruby-1.8.6-p420/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/max/.rvm/gems/[email protected]/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require'
/home/max/work/charanga/elearn_container/elearn/features/support/env.rb:10
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/rb_support/rb_language.rb:143:in `load'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:171:in `load_file'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:83:in `load_files!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:82:in `each'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime.rb:137:in `load_step_definitions'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/runtime.rb:39:in `run!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/cli/main.rb:43:in `execute!'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/../lib/cucumber/cli/main.rb:20:in `execute'
/home/max/.rvm/gems/[email protected]/gems/cucumber-1.1.1/bin/cucumber:14
/home/max/.rvm/gems/[email protected]/bin/cucumber:19:in `load'
/home/max/.rvm/gems/[email protected]/bin/cucumber:19
Aquí está el archivo erroring:
#/home/max/.rvm/gems/[email protected]/gems/capybara-1.1.1/lib/capybara/rails.rb
require 'capybara'
require 'capybara/dsl'
Capybara.app = Rack::Builder.new do
map "/" do
if Rails.version.to_f >= 3.0
run Rails.application
else # Rails 2
use Rails::Rack::Static
run ActionController::Dispatcher.new
end
end
end.to_app
Capybara.asset_root = Rails.root.join('public')
Capybara.save_and_open_page_path = Rails.root.join('tmp/capybara')
Así, la línea 4 está creando el error con la línea Rack::Builder.new
. ¿Pero por qué? ¿Algunas ideas? Ya tengo la gema Rack instalada.
gracias, máximo
Al tener un problema similar, tan pronto como agregue spec/spec_helper.rb la línea requiere 'capybara/rails' obtengo el mensaje de error '/vendor/rails/activesupport/lib/active_support/dependencies.rb:445: en 'load_missing_constant ': constante no inicializada Rack :: Builder (NameError)' – hebe
¿Cambiar a 1.8.7 no es una opción, o a 1.9/2.0? Podría resolver su problema. – fotanus