2009-03-28 9 views
6

He estado cifrando pruebas en Junit4 con la primavera, y tengo este comportamiento divertido:Junit4 + Primavera 2.5: Afirma tiro "NoClassDefFoundError"

Si mis pruebas están pasando de esta manera, todo está bien:

@Test 
public void truthTest(){ 

    assertTrue(true); //Ok 

} 

Pero, si mi prueba falla:

@Test 
public void truthTest(){ 

    assertTrue(false); //ERROR 

} 

Entonces, en lugar de un fallo de la prueba recibo un seguimiento de la pila fea y críptico, This is it:

http://pastie.org/429912

Lo siento por esta fea volcado, pero es el único dato que tengo que explicar el problema (I "pastied" para facilitar la lectura)

estoy realmente perplejo, ¿alguien ha encontrado este tipo de problema antes? ¡Gracias por adelantado!

+0

Aquí está mi solución en un hilo relacionado http://stackoverflow.com/a/26029170/206622 –

Respuesta

11

http://jira.springframework.org/browse/SPR-5145

Se trata de un problema conocido con 2.5.x.-pruebas de la primavera Es incompatible con JUnit 4.5. Use 4.0-4.4.

O puede probar el parche en el rastreador de problemas.

+1

En una Una nota al margen: (a partir de ahora), la solución es "Si está utilizando 4.0-4.4, pruebe 4.5. Si está utilizando 4.5, intente con 4.0-4.4". Solo tuve el mismo problema y lo resolví actualizando a 4.5. – cwallenpoole

0

¿Qué sucede si importó AssumptionViolatedException en su clase de prueba?

Parece que no puede encontrar la clase para lanzar la excepción adecuada.

+0

He importado org.junit.internals.AssumptionViolatedException pero no funciona bien –

1

Tuve el mismo problema cuando escribí mis pruebas de Spring JUnit. Al igual que una gran cantidad de puestos disponibles en línea, sólo hay dos alternativas

1) Manténgase al día con la versión de la primavera y usar la versión más reciente de JUnit o 2) Deja tu versión actual de Primavera y utilizar JUnit versión 4.4 o Menos.

Elegí la opción # 2 donde dejamos nuestra versión de Spring en 2.5 y descargamos JUnit 4.4. Todo funcionó bien después de eso.

Otro punto a tener en cuenta es que si su proyecto, es decir, el proyecto A en el que escribe sus pruebas depende de otro proyecto B que tenga otra versión de Spring, también obtendrá un error similar. Lo aprendí de la manera difícil.

-Prashanth

Cuestiones relacionadas