2009-12-07 17 views
10

Me sorprendió no encontrar la respuesta hasta el momento. Si me falta algo básico, estaré más que feliz de saber eso.Actualizando a JUnit4 y manteniendo las pruebas heredadas de JUnit 3 y suites de pruebas ejecutándolas juntas

Hay una gran base de código heredada que se actualizó a Java 6 (desde 1.4). Gran cantidad de pruebas JUnit 3 están presentes en el código y están organizadas en conjunto de pruebas que se ejecuta satisfactoriamente con el corredor predeterminado JUnit 4 en Eclipse.

Ahora, agrego nuevas pruebas que son pruebas completas de JUnit 4 (anotaciones, sin TestCase, etc.). ¿Cuál sería una forma de ejecutar juntos el antiguo conjunto de pruebas JUnit 3 y las nuevas pruebas JUnit 4?

+0

Me gustaría responder que hacemos esto con un AntTask, pero creo que te refieres solo a Eclipse. Si es así, por favor etiqueta para eclipse. – shoover

+1

@shoover - No, no me refiero solo a Eclipse. Estoy buscando una solución genérica que ejecute pruebas solo con Java. – topchef

Respuesta

12

Simplemente use el corrector de prueba 'JUnit4' en su configuración de ejecución.

Los binarios JUnit4 tienen una capa de compatibilidad con versiones anteriores que le permite tener ambas clases de estilo JUnit3 y JUnit4 en el mismo conjunto de pruebas.

Para compilaciones de línea de comandos solo use JUnit4 jar en lugar de JUnit3.

Esto se hizo específicamente para facilitar la migración que está haciendo ahora.

Además, funciona bien en mi proyecto.

+0

Alex, gracias, pero estaba buscando una solución más concreta. Gracias a tu respuesta creo que se me ocurrió una. Lo agregaré como respuesta y le daré un crédito por ello. – topchef

+0

¿Puedes verificar este problema? No estoy seguro de cómo 'configurar' Junit4 vs Junit3. (Aquí) [http://stackoverflow.com/q/26848673/668650] es el problema. –

9

El @RunWith (Suite.class) me da la oportunidad de combinar ambas JUnit JUnit 4 y 3 pruebas y casos de prueba juntos:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    ExampleOfJunit3TestSuite.class, 
    ExampleOfJUnit3TestCase.class, 
    ExampleOfJUnit4TestSuite.class, 
    ExampleOfJUnit4TestCase.class}) 
public class BothJUnit4and3TestSuite { 
} 

Los BothJUnit4and3TestSuite ejecuta todas las pruebas y conjuntos de pruebas que figuran en @ Suite.SuiteClasses.

Cuestiones relacionadas