Tenemos clases de prueba que se basan en AbstractTransactionalDataSourceSpringContextTests de Spring 2.0.8. Hay una gran cantidad de estos, todos escritos en estilo JUnit3.¿Cómo puedo ejecutar un Runner JUnit4 personalizado en clases de prueba JUnit3 con Ant?
Para utilizar el filtrado JUnit 4, hemos creado un JUnit38Runner de reemplazo que nos permite unir estas pruebas a un entorno de aplicación específico y filtrarlas en consecuencia.
Todo el conjunto de pruebas funciona muy bien fuera de la hormiga, mediante el uso de la anotación @RunWith en nuestra JUnit38Runner personalizado.
Cuando intentamos ejecutar en Ant, sin embargo, obliga a las pruebas individuales a ejecutarse como junit.framework.TestSuite o envueltas en un JUnit4TestAdapter, que ignoran @RunWith las anotaciones bajo JUnit4. Para empeorar las cosas, nuestras suites existentes son anuladas explícitamente por Ant, que llama directamente a los métodos suite(), en lugar de delegar en JUnit.
He intentado extender desde la hormiga JUnitTestRunner, y simplemente reemplazar el método run(), sin embargo la clase es simplemente no está escrito para la extensión.
Además de copiar todo el JUnitTestRunner y hackearlo (lo que nos abrirá hasta problemas de código frágil), ¿alguien ha tenido suerte con otros enfoques para resolver este problema?
Parece que hay un par de código huele aquí. Sé que probablemente no sea la respuesta que está buscando, pero puede ser momento de refactorizar sus casos de prueba. – bakoyaro
La refabricación no solucionará los problemas con Ant (envolviendo pruebas JUnit 4 en Junit 3). Con numerosas soluciones, está dando tumbos, pero creo que voy a tener que morder la bala y escribir una tarea JUnit4 Ant uno de estos días. – Matt
Quizás haya una respuesta en [Actualizando a JUnit4 y manteniendo las pruebas heredadas JUnit 3 y suites de pruebas ejecutándolas juntas] [1]? [1]: http: //stackoverflow.com/questions/1861875/upgrading-to-junit4-and-keeping-legacy-junit-3-tests-and-test-suites-by-running –