Antecedentes:Ejecución de pruebas de selenio en paralelo con capibara
Tengo un conjunto de Carpincho pruebas de integración que se ejecutan en contra de mis Rails 3 Aplicación. Para las otras partes del conjunto de pruebas estoy usando Rspec.
Tengo un hub de servidor autónomo selenium 2.6.0 en mi máquina de desarrollo Mac OSX.
java -jar selenium-server-standalone-2.6.0.jar -role hub
estoy corriendo varias máquinas virtuales cada uno conectados al concentrador con un nodo de selenio:
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
Esto funciona bien, En esta captura de pantalla de la consola muestra que tengo un IE7 e IE8 una navegador conectado al cubo:
he capibara instalación para ejecutar contra el cubo de selenio (que los delegados de las pruebas a los nodos).
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
Funciona, sin embargo, sólo se ejecutará la prueba en un solo nodo internet_explorer. Parece ser el que está "primero en línea"; Si lo desactivo, la prueba se ejecutará correctamente en el otro nodo.
He estado probando el proyecto parallel_tests, configurando capybara según lo sugerido, pero eso solo lanzaría una prueba de integración.
¿Cómo puedo ejecutar mi integración en todos los nodos de Internet_explorer simultáneamente?
Bono pregunta: si quería pasar mis pruebas de integración en todos los nodos conectados, independientemente de la capacidad del navegador, ¿cómo iba a hacer eso?
Daniel, estoy teniendo el mismo problema que usted, ¿fue capaz de encontrar una solución? – Farooq
Me di cuenta de que si tienes 1 concentrador y 3 nodos en ejecución y ejecutas 3 pruebas al mismo tiempo en 3 pestañas diferentes, entonces las pruebas se ejecutarán en todos los nodos. 1 prueba para cada nodo. Básicamente, la prueba recoge el siguiente nodo vacío en línea y lo ejecuta allí. – Farooq