I added cucumber to my rails project using the following commands:
git submodule add git://github.com/aslakhellesoy/cucumber.git
vendor/plugins/cucumber
ruby script/generate cucumber
git submodule add git://github.com/brynary/webrat.git
vendor/plugins/webrat
git submodule add git://github.com/dchelimsky/rspec.git
vendor/plugins/rspec
git submodule add git://github.com/dchelimsky/rspec-rails.git
vendor/plugins/rspec-rails
script/generate rspec
I create a feature that used steps that included visits. I got the
following error:
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require’: no such file to load – webrat (LoadError)
This occurred at line 4 in webrat_steps.rb
So I commented out that line and added “require ‘webrat’” to env.rb
This time I got the following error:
undefined method `visits’ for
#ActionController::Integration::Session:0x7f3d871693d0 (NoMethodError)
So I had to change the require in env.rb to
require ‘webrat/rails’
It worked but I got the following deprecation errors:
visits is deprecated. Use visit instead.
fills_in is deprecated. Use fill_in instead.
clicks_button is deprecated. Use click_button instead.
I changed these in my steps file, and it worked fine.
The problem with requiring webrat from webrat_steps, is that when this
line is executed, the $LOAD_PATHS has not been modified to include the
plugin lib directories. That is done by support/env.rb. The rake task
“features” creates a command line that looks like:
-I
“/home/sveit/Projects/rails/varsitytutors/vendor/plugins/cucumber/lib”
“/home/sveit/Projects/rails/varsitytutors/vendor/plugins/cucumber/bin/cucumber”
–format pretty --require features/step_definitions/user_steps.rb
–require features/step_definitions/webrat_steps.rb --require
features/step_definitions/frooble_steps.rb --require
features/support/env.rb features/manage_users.feature
“support/env.rb” is required after “step_definitions/webrat_steps.rb”.
this should probably be changed.