2010-03-18 17 views
5

Estamos utilizando JUnit - Selenium para nuestras pruebas web. Usamos Maven para iniciarlos y crear un informe infalible.Maven - Selenium - Posibilidad de ejecutar solo una prueba

El conjunto de pruebas es bastante grande y tarda un tiempo en ejecutarse y, a veces, solo fallan algunas pruebas porque el navegador no se iniciará. Quiero poder ejecutar una prueba INDIVIDUAL utilizando maven, así que vuelvo a probar las pruebas que fallan y actualizo el informe.

Puedo usar mvn test -Dtest=TESTCLASSNAME para ejecutar todas las pruebas en una clase de prueba, pero esto no es suficiente ya que toma aproximadamente 10 minutos ejecutar todas las pruebas en nuestras clases de prueba más complicadas y es muy probable que alguna otra prueba fallar (porque el navegador no se iniciará) y esto arruinará mi informe.

Sé que puedo ejecutar una prueba desde Eclipse pero eso no es lo que estoy buscando.

Cualquier ayuda en esto sería muy appriciated

Respuesta

2

La respuesta de c_maker describe los puntos principales: realmente debería considerar dividir los casos de prueba grandes en varios. Recomiendo TestNG o JUnit4 para las pruebas de Selenium para que pueda administrar fácilmente la configuración antes de todo el conjunto, las dependencias de prueba, etc. En TestNG, también puede usar un group para clasificar las pruebas para que se ejecuten de manera selectiva, de modo que no necesite configurarlas para que ignoren cuándo desea ejecutar una clase particular de pruebas.

3
  1. puede ordenar una clase padre con la configuración común y una clase secundaria para cada caso de prueba, de esa manera se puede utilizar mvn test -Dtest = TESTCLASSNAME para ejecutar una prueba única

  2. Si está utilizando junit4, puede anotar los métodos que desea ignorar por el momento con @Ignore.

  3. Si no necesita ejecutar onSetup() y onTeardown() para cada caso de prueba, puede hacer que los métodos de prueba sean privados y tener solo un testcase que llame a los demás. De esta forma, es fácil comentarlos según sea necesario.

0

Si está utilizando el Maven Surefire Plugin, usted puede funcionar esta:

mvn -Dtest=TestCircle#mytest test 

donde TestCircle es la clase de prueba, y mytest es el nombre del método de prueba.

no directamente relacionados, pero si está utilizando pepino para ejecutar escenarios, es posible ejecutar un solo escenario en un solo archivo de función al hacer esto:

mvn -P selenium,chrome -Dcucumber.options="classpath:com/my/package/myfeature.feature:47" clean verify 

donde la línea 47 es el comienzo del escenario se desea ejecutar, y "chrome" es su perfil de prueba del navegador.

Cuestiones relacionadas