I am running an application on Rails 2.3.2. For some reason within our organization, we wish to remain on this version of Rails. For BDD/Testing, we use Cucumber. So I installed Cucumber (0.8.5), Capybara (0.3.9) and Selenium-webdriver (0.0.17). But when I run Cucumber on any feature, I get an error saying " wrong number of arguments (2 for 1) (ArgumentError)", (Check here for more: http://pastie.org/1169557). In addition, Selenium web-driver was initiating two web browser windows concurrently. But, the features were just “fine and good”.
Folks, it took me ages to figure out the problem. The error itself did not give a clue as to what went wrong. Neither did Cucumber inform/tip/warn me about anything. But after hours of trial and error, I discovered that the three giants, Cucumber (0.8.5), Capybara (0.3.9) and Selenium-webdriver (0.0.17), were just incompatible with Rails 2.3.2. When I changed the RAILS_GEM_VERSION in config/environment.rb from ‘2.3.2’ to ‘2.3.5’. The features run awesomely cool!.
I’m glad to have solved it (and I liked the experience!!). So if anyone is finding the same problem with some Cucumber version (esp. >= 0.8.5 ) plus its peripherals (Yes, I said peripherals ), hip-hop-hooray! salvation is here:
- make sure you have the latest rails gem version (> 2.3.2)
- If you would like to stick to your previous Rails version, then you can be switching between the versions. I do this manually, I would like to find a better way just automate it so that anyone ( who wishes to do so) can run the “Cukes” without problems.