2012-06-14 14 views
5

Al usar TestNG + Selenium, no puedo garantizar el orden de ejecución de las clases. El orden especificado a continuación (en testng.xml) no funciona -> ClassTwo se ejecuta primero y luego se ejecuta ClassOne.¿Cómo garantizar que se conserve el orden especificado en TestNG.xml?

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="ABC" parallel=""> 
    <test verbose="2" name="xyz" annotations="JDK" preserve-order="true"> 
    <classes> 
     <class name="script.ClassOne"/> 
     <class name="script.ClassTwo"/> 
    </classes> 
    </test> 
</suite> 

¿Cómo puedo garantizar que se conserva el orden especificado en TestNG.xml?

+0

El orden de conservación funciona para mí ... hizo una prueba simple. ¿Puedes publicar tu código y salida? –

+0

Esto todavía está roto. Cualquier resolución para este problema? – sebnukem

Respuesta

4

Según TestNG documentation:

Por defecto, TestNG se ejecutará sus pruebas en el orden en que se encuentran en el archivo XML. Si desea que las clases y los métodos enumerados en este archivo que se ejecutan en un orden impredecible, establezca el atributo preservar orden en false

Yo sugeriría dejando el preserve-order atribuyen a cabo, ya que se establece por defecto .

Sin embargo, tiene otras dos opciones para forzar un orden específico a los métodos de ensayo/clases:

  1. invocación de pruebas mediante programación.
  2. Implemente method interceptor, que ordenará la lista de las pruebas.
+1

Pero en mi caso no se sigue el flujo de ejecución definido en testng.xml. Quiero que el flujo de ejecución sea de acuerdo con testng.xml. Si dejo de preservar, el problema persiste. ¿Cuál puede ser el motivo? – Mandy

+0

Es posible que esté utilizando una versión anterior de TestNG donde ese indicador no estaba configurado de manera predeterminada. Asegúrate de usar la última versión. –

+0

Me he dado cuenta de que el orden de los métodos funciona bien si los enumera explícitamente en el orden deseado dentro de una colección dentro de su definición . De lo contrario, están en un orden impredecible. –

0

.... Bastante después del evento pero tuve el mismo problema y me encontré aquí.

Al final fue porque las pruebas individuales habían sido marcados con una prioridad en el @Test anotación, por lo que en mi caso, pero su ejemplo script.ClassTwo tenido una prioridad mayor que script.ClassOne

4

Sólo hay que establecer valor paralelo ninguno

<suite name="ABC" parallel="none"> 

¡funciona para mí!

Cuestiones relacionadas