Background:
I have a set of Capybara integration tests running against my Rails 3 Application. For the other parts of the test suite I'm using Rspec.
I have a selenium 2.6.0 standalone server hub on my Mac OSX dev machine.
java -jar selenium-server-standalone-2.6.0.jar -role hub
I'm running several virtual machines each hooked up to the hub with a selenium node:
java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS
This works fine, In this screenshot the console shows that I have an IE7 and an IE8 browser connected to the hub:
I've setup capybara to run against the selenium hub (that delegates the tests to the nodes).
Capybara.app_host = "myapp.dev"
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app,
:browser => :remote,
:url => "http://localhost:4444/wd/hub",
:desired_capabilities => :internet_explorer)
end
It works, however it will only run the test on a single internet_explorer node. It seems to be the one that is "first in line"; If i turn it off, the test will successfully run on the other node.
I've been trying out the parallel_tests project, configuring capybara as suggested, but that would still only launch one integration test.
How can I run my integration on all internet_explorer nodes simultaneously?
Bonus question: If i wanted to run my integration tests on all connected nodes, regardless of browser capability, how would i do that?