黄瓜在没有猪肉的情况下工作得很好,但猪肉给了我"uninitialized constant Cucumber::Rails"



我现有的 rspec 和黄瓜功能都运行良好。

我正在安装 spork(实际上是猪肉轨道)以给我一些重新运行速度。

我的 rspec 用猪肉运行良好。

我刚刚按照说明修改了 env.rb(与 spec_helper.rb 的模组非常相似),但是当我尝试运行 bundle exec cucubmer --drb 时我uninitialized constant Cucumber::Rails了。

顺便说一下,轨道 3.2

有什么想法吗?

这是我的env.rb:

require 'rubygems'
require 'spork'
#uncomment the following line to use spork with the debugger
require 'spork/ext/ruby-debug'

if Spork.using_spork?
  Spork.prefork do
    require 'rails'
    require 'cucumber/rails'
    Capybara.default_selector = :css
    begin
      DatabaseCleaner.strategy = :transaction
    rescue NameError
      raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
    end    
  end
  Spork.each_run do
    # This code will be run each time you run your specs.
    require 'cucumber/rails'
    Cucumber::Rails::Database.javascript_strategy = :truncation
    ActionController::Base.allow_rescue = false

    module NavigationHelpers
      def path_to(page_name)
        case page_name
        when /the home page/
          root_path
        # Add more page name => path mappings here
        else
          if path = match_rails_path_for(page_name)
            path
          else
            raise "Can't find mapping from "#{page_name}" to a path.n" +
            "Now, go and add a mapping in features/support/paths.rb"
          end
        end
      end
      def match_rails_path_for(page_name)
        if page_name.match(/the (.*) page/)
          return send "#{$1.gsub(" ", "_")}_path" rescue nil
        end
      end
    end
    World(NavigationHelpers)  
  end
else
  #omitted
end

供将来参考,记下我为解决此问题所做的工作。最后,我认为这是一个奇怪的症状,因为在 Gemfile 中略微错误地引用了黄瓜导轨。

我也收到错误说:

WARNING: Cucumber-rails required outside of env.rb. 
The rest of loading is being defered until env.rb is called. 
To avoid this warning, move 'gem cucumber-rails' under only
group :test in your Gemfile 

按照 https://github.com/cucumber/cucumber/issues/249 中的说明,我通过将 require: false 添加到我的 Gemfile 来解决此问题,如下所示:

group :test do
  gem 'cucumber-rails', require:false
  #....
end

相关内容

最新更新