Using Cucumber with latest Webrat


#1

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.


#2

On Tue, Dec 2, 2008 at 4:25 PM, Stephen V. removed_email_address@domain.invalid
wrote:

vendor/plugins/rspec-rails
So I commented out that line and added “require ‘webrat’” to env.rb
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.

I just (1 hour ago) incorporated some recent Cucumber changes from Bryan
(who writes Webrat) and released cucumber 0.1.11.
Can you try with the latest release? It should work well with Bryan’s
latest
webrat.

Cheers,
Aslak


#3

On Dec 2, 2008, at 10:42 AM, aslak hellesoy wrote:

vendor/plugins/rspec
This occurred at line 4 in webrat_steps.rb

I just (1 hour ago) incorporated some recent Cucumber changes from
Bryan (who writes Webrat) and released cucumber 0.1.11.
Can you try with the latest release? It should work well with
Bryan’s latest webrat.

I had the same problem. The fix was to install Webrat as a plugin.
I’ll try out the updated versions.


#4

Jim G. wrote:

On Dec 2, 2008, at 10:42 AM, aslak hellesoy wrote:

vendor/plugins/rspec
This occurred at line 4 in webrat_steps.rb

I just (1 hour ago) incorporated some recent Cucumber changes from
Bryan (who writes Webrat) and released cucumber 0.1.11.
Can you try with the latest release? It should work well with
Bryan’s latest webrat.

I had the same problem. The fix was to install Webrat as a plugin.
I’ll try out the updated versions.

I tried with the latest plugins from GitHub for Cucumber and Webrat. It
worked fine. Thanks.


#5

But doesn’t work with the webrat gem

2008/12/4 Stephen V. removed_email_address@domain.invalid