我一直在我的应用程序中使用黄瓜,这是一个轨道2.2.2应用程序运行在红宝石1.8.6(升级不是选项现在)。黄瓜已经很好了,现在我正在尝试使用水豚。我已经安装了capybara (1.1.1)
宝石,并将require 'capybara/rails'
放入我的features/support/env.rb file
。“要求”水豚/铁轨“”给“未初始化的常量Rack :: Builder”
现在,当我运行黄瓜,我得到这个错误:
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
这里的示数文件:
#/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')
因此,4号线与Rack::Builder.new
线产生错误。但为什么?有任何想法吗?我已经安装了Rack Gem。
谢谢,最大
有一个类似的问题,只要我添加spec/spec_helper.rb行要求'水豚/钢轨'我得到错误消息'/vendor/rails/activesupport/lib/active_support/dependencies.rb:445:在'load_missing_constant':未初始化的常量Rack :: Builder(NameError)' – hebe 2012-01-28 13:41:43
Uggrading to 1.8.7不是一个选项,还是1.9/2.0?它可能会解决你的问题。 – fotanus 2013-08-15 21:15:26