我有一组的运行对我的Rails 3应用水豚集成测试。对于测试套件的其他部分,我使用的是Rspec。
我在我的Mac OSX开发机器上安装了一个selenium 2.6.0独立服务器集线器。
java -jar selenium-server-standalone-2.6.0.jar -role hub
我运行多个虚拟机,每个挂在轮毂与硒节点:
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
这工作得很好,在这个截图控制台显示我有一个IE7和IE8的浏览器连接到集线器:
我设置水豚兑硒枢纽运行(即代表测试到节点)。
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
它可以工作,但它只会在单个internet_explorer节点上运行测试。它似乎是“第一线”的;如果我关闭它,测试将成功运行在另一个节点上。
我一直在尝试parallel_tests项目,按照建议配置capybara,但那仍然只会启动一个集成测试。
如何在所有internet_explorer节点上同时运行我的集成?
奖金的问题:,如果我想所有连接的节点上运行我的集成测试,不管浏览器的能力,我会怎么做呢?
丹尼尔,我和你有同样的问题,你能找到解决方案吗? – Farooq
我发现如果您有1个Hub和3个节点正在运行,并且您在3个不同的选项卡中同时运行3个测试,则测试将在所有节点中运行。 1测试每个节点。基本上测试会在线检测下一个空节点并在那里运行。 – Farooq