2009-11-04 20 views
17

Tengo una suite TestNG con una gran cantidad de métodos. Ejecuto esta suite usando wrapper construido sobre TestNG runner. Todas las pruebas en el paquete fallan excepto una. ¿Qué debería escribir en testng.xml para ejecutar solo esa prueba fallida?¿Cómo ejecutar una prueba desde una suite TestNG grande usando testng.xml?

La solución obvia es asignar nombres únicos de grupo a todos los métodos y luego especificar el nombre en testng.xml. Esto puede funcionar en el caso de 2-3 métodos, pero se vuelve más difícil a medida que crece la cantidad de pruebas.

Respuesta

1

Existen varios métodos para hacer esto.

¿Está utilizando Eclipse para el desarrollo? Existe un plugin de Eclipse para TestNG y creo que sería, de lejos, la forma más fácil de ejecutar pruebas específicas. El complemento le permite ejecutar un conjunto, grupo, clase o método de prueba disponible.

De lo contrario, creo que puede configurar una tarea ant para iniciar la prueba (http://testng.org/doc/ant.html) y usar atributos como "classfilesetref" para proporcionar una lista de pruebas para ejecutar. Puede especificar la prueba en un archivo separado para que no tenga que actualizar build.xml cada vez que ejecute la prueba.

Para instalar Testng Plugin.Just Siga los pasos: 1-Vaya al menú "Ayuda" en Eclipse. 2-Seleccionar "Instalar nuevo software" " 3-Añadir" http://beust.com/eclipse."

Funciona en caso de que el error que ha especificado creo que no tienes el plugin instalado dentro del Eclippse IDE

+0

La primera opción no está disponible - Estoy usando envoltorio, construido sobre el corredor TestNG para iniciar las pruebas.Eclipse no captura los resultados de las pruebas, ejecutados por mi envoltorio. Gracias por la segunda opción - Lo intentaré. –

4

Después . cada ejecución, TestNG TestNG crea una llamada-failed.xml presentado que contiene sólo las pruebas que fallaron sólo invocar TestNG otra vez en ese archivo:

java org.testng.TestNG testng.xml java org.testng.TestNG TestNG -failed.xml

(replace org .testng.TestNG con su propio corredor ya que parece usar uno personalizado).

+0

¡No lo puedo creer, el mismo Beust respondiendo la respuesta! –

1

También podría crear su propio ITestListener (ya que tiene su propio envoltorio de todos modos) que realiza un seguimiento de los fallos y luego generar su propio archivo de suite de fallas que contiene solo la prueba fallida. Los ganchos listener/interceptor de TestNG son bastante buenos. En el trabajo hemos ampliado TestNG utilizando varias maneras:

  • captura/reproducción de datos generada conjuntos
  • tala resultado a una base de datos personalizada
  • salida de prueba (logs)
  • meta datos tales como identificadores , descripciones, para los conjuntos de datos proporcionados por un @DataProvider
  • controles de tiempo de ejecución de las restricciones dependientes de entorno en los casos de prueba
6

intente esto:

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <exclude name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
+1

O para ejecutar solo el –

15

En lugar de exclude, es posible utilizar include. Será exactamente lo que quieras. Solo esta prueba será ejecutada.

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <include name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
Cuestiones relacionadas