Cucumber Rails 3.1未初始化的常量ActionController :: Dispatcher(NameError)

我正在使用Rails 3.1应用程序,我正在将黄瓜集成到我的应用程序中,但是当我尝试运行它时,我得到了这个奇怪的错误,有人可以帮助我吗?

Using the default profile... uninitialized constant ActionController::Dispatcher (NameError) /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-rails-0.3.2/lib/cucumber/rails/action_controller.rb:51:in `rescue in ' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-rails-0.3.2/lib/cucumber/rails/action_controller.rb:42:in `' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-rails-0.3.2/lib/cucumber/rails/world.rb:27:in `' /Users/chinog9/INNKU/tacos/features/support/env.rb:11:in `' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/rb_support/rb_language.rb:143:in `load' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime/support_code.rb:176:in `load_file' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime/support_code.rb:78:in `block in load_files!' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime/support_code.rb:77:in `each' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime/support_code.rb:77:in `load_files!' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime.rb:137:in `load_step_definitions' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/runtime.rb:39:in `run!' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/cli/main.rb:43:in `execute!' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/lib/cucumber/cli/main.rb:20:in `execute' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-0.10.2/bin/cucumber:14:in `' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/bin/cucumber:19:in `load' /Users/chinog9/.rvm/gems/ruby-1.9.2-p180/bin/cucumber:19:in `' 

这是我的env.rb:

 ENV["RAILS_ENV"] ||= "test" require File.expand_path(File.dirname(__FILE__) + '/../../config/environment') require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support require 'cucumber/rails/world' require 'cucumber/rails/active_record' require 'cucumber/web/tableish' require 'capybara/rails' require 'capybara/cucumber' require 'capybara/session' require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript Capybara.default_selector = :css ActionController::Base.allow_rescue = false Cucumber::Rails::World.use_transactional_fixtures = true if defined?(ActiveRecord::Base) begin require 'database_cleaner' DatabaseCleaner.strategy = :truncation rescue LoadError => ignore_if_database_cleaner_not_present end end 

这是我的Gemfile:

 source 'http://rubygems.org' gem 'rails', '3.1.0.rc4' gem 'sqlite3' gem 'nifty-generators' gem 'sass-rails', "~> 3.1.0.rc" gem 'coffee-script' gem 'uglifier' gem 'jquery-rails' gem 'ruby-debug19', :require => 'ruby-debug' group :development, :test do gem 'capybara' gem 'database_cleaner' gem 'cucumber-rails' gem 'cucumber' gem 'rspec-rails', '>=2.6' gem 'rspec-rails-mocha' gem 'spork', '~> 0.9.0.rc' gem 'factory_girl_rails' gem 'launchy' gem "ruby-debug19" gem 'turn', :require => false gem "selenium-client" end gem "mocha", :group => :test 

谢谢! 🙂

我有一个类似的问题,我相信它的RVM导致了这个问题。

基本上它是Ruby编译的依赖项; 使用rvm笔记

 sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev 

以上是用于MRI

如果未安装任何这些,请安装它们,然后卸载/安装1.9.2-p180

希望有所帮助

我遇到了同样的问题并解决了将cucumber-rails升级到1.0.5的问题。 在Gemfile中试试这个。

 gem "cucumber-rails", "1.0.5" 

并重新运行安装程序

 script/rails g cucumber:install your-language --your-options 

对我来说,魔法require: false

 gem 'cucumber-rails', '~>1.4.0', require: false