【问题标题】:Cucumber Rails 3.1 uninitialized constant ActionController::Dispatcher (NameError)Cucumber Rails 3.1 未初始化常量 ActionController::Dispatcher (NameError)
【发布时间】:2011-07-05 00:03:04
【问题描述】:

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

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 <top (required)>'
/Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-rails-0.3.2/lib/cucumber/rails/action_controller.rb:42:in `<top (required)>'
/Users/chinog9/.rvm/gems/ruby-1.9.2-p180/gems/cucumber-rails-0.3.2/lib/cucumber/rails/world.rb:27:in `<top (required)>'
/Users/chinog9/INNKU/tacos/features/support/env.rb:11:in `<top (required)>'
/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 `<top (required)>'
/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 `<main>'

这是我的 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

谢谢! :)

【问题讨论】:

    标签: ruby-on-rails cucumber ruby-on-rails-3.1


    【解决方案1】:

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

    gem "cucumber-rails", "1.0.5"
    

    然后重新运行安装程序

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

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,我相信是它的 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
      

      以上是核磁共振

      如果其中任何一个未安装,则安装它们,然后卸载/安装 1.9.2-p180

      希望有帮助

      【讨论】:

      • 我遇到了同样的问题并按照建议做了同样的事情,但我仍然遇到同样的问题。
      【解决方案3】:

      对我来说,魔法是require: false

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2015-02-01
        • 1970-01-01
        相关资源
        最近更新 更多