Estoy intentando hacer que Gradle ejecute algunas pruebas definidas usando un archivo testng.xml. Mi archivo testng.xml se ve así:¿Cómo puedo decirle a Gradle que use mi archivo testng.xml para Clases de prueba y pedidos?
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="mySuite" verbose="1">
<listeners>
<listener class-name="mypackage.MyListener" />
<listener class-name="mypackage.TestOrderer" />
</listeners>
<test name="Tests">
<classes>
<class name="mytestpackage.CrazyTest1"/>
<class name="mytestpackage.CrazyTest2"/>
<class name="mytestpackage.CrazyTest3"/>
</classes>
</test>
</suite>
¿Por qué necesito esto? Quiero asegurarme de que mis pruebas estén organizadas de una manera que esté definida por anotaciones similares a las que figuran en el listado here. Como se puede adivinar, TestOrderer es un IMethodInterceptor.
Aquí está el problema, Gradle parece estar tomando control de mi archivo testng.xml y raspando el directorio de prueba para encontrar las pruebas que quiere ejecutar. Incluso si deshabilito esto, no puede ejecutar los métodos de manera apropiada. Esto es lo que creo que debería funcionar, pero simplemente, no.
test {
useTestNG()
options.suites("src/test/resources/crazyTestNG.xml")
# Adding
# scanForTestClasses = false
# causes zero tests to be executed, since the class names don't end in Test
}
Parece que debería ser una obviedad ... bifurcar el proceso TestNG y se deja correr, pero no puedo encontrar la manera de decirle Gradle para salir del camino y sólo hay que ejecutar mi pruebas.
No, necesito especificar las clases de prueba. Necesito que se ejecuten en un orden muy específico debido a un caso de uso específico del motor TestNG. El escaneo rompe este proceso. –