For Your Own Info: Rails 2.3.2 is incompatible with Cucumber (0.8.5), Capybara (0.3.9) and Selenium-webdriver (0.0.17)

Railers, 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 360.gif), 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. Kind regards,

Railers, 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 360.gif), 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.

Do you mean that you run the tests with rails 2.3.5 but use 2.3.2 in production? That seems like a bad idea to me.

Colin

Do you mean that you run the tests with rails 2.3.5 but use 2.3.2 in production? That seems like a bad idea to me.

I would say Yes and No.

Why Yes: For whatever reason, Cucumber 0.8.5 misbehaves on rails 2.3.2. But I still want to take advantage of it (plus its dependencies, esp. Capybara). After all for the features look same in both rails environments. One using rails 2.3.2 for testing can run them without any problems, provided they have tools befitting it.

Why No: But for the rest of Testing (Shoulda) is done using rails 2.3.2 environment.

Regards,