Cucumber works fine without spork, but spork gives me an "uninitialized persistent cucumber :: Rails"

I have existing rspecs and oucumber functions, everything works fine.

I install spork (spork-rails actually) to give me a little re-launch.

My rspec works fine with spork.

I just changed env.rb according to the instructions (very similar to mods on spec_helper.rb), but I get an uninitialized constant Cucumber::Rails when I try to run bundle exec cucubmer --drb .

Rails 3.2 by the way

Any ideas?

Here is my 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 
+6
source share
1 answer

In further reference books, note what I did to fix this. In the end, I think it was a strange symptom related to the wrong reference to the cucumber rails in the Gemfile.

I also got errors:

 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 

Following the instructions at https://github.com/cucumber/cucumber/issues/249 , I fixed this by adding require: false in my Gemfile as follows:

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

Source: https://habr.com/ru/post/916839/


All Articles