2009-03-28 6 views
6

Ich habe Codierung Tests in junit4 mit Frühling, und ich habe dieses lustige Verhalten:junit4 + Spring 2.5: Behauptet throw "NoClassDefFoundError"

Wenn meine Tests wie diese sind vorbei, alles ist in Ordnung:

@Test 
public void truthTest(){ 

    assertTrue(true); //Ok 

} 

Aber wenn mein Test nicht bestanden:

@Test 
public void truthTest(){ 

    assertTrue(false); //ERROR 

} 

Dann anstelle einem Testfehler ich eine hässliche und kryptische Stack-Trace erhalten, Das ist es:

http://pastie.org/429912

Sorry für dieses hässliche dump, aber es ist die einzigen Daten ich habe das Problem zu erklären (I „pastied“ zur besseren Lesbarkeit)

Ich bin wirklich verwirrt, angetroffen hat jemand diese Art Problem vorher? Danke im Voraus!

+0

Hier ist meine Abhilfe in einem verwandten Thread http://stackoverflow.com/a/26029170/206622 –

Antwort

11

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

Es ist ein bekanntes Problem mit Feder-Test 2.5.x. Es ist mit JUnit 4.5 nicht kompatibel. Verwenden Sie 4.0-4.4.

Oder Sie können den Patch im Issue Tracker versuchen.

+1

auf einem Arbeits Bit einer Randnotiz: (ab sofort), die Lösung ist "Wenn Sie 4,0-4,4 verwenden, versuchen Sie 4,5. Wenn Sie 4,5 verwenden, versuchen Sie 4,0-4,4". Ich hatte gerade das gleiche Problem und habe es gelöst, indem ich auf 4.5 aktualisiert habe. – cwallenpoole

0

Was passiert, wenn Sie die Übernahme von "AssumptionViolatedException" in Ihre Testklasse importiert haben?

Es sieht aus wie es die Klasse nicht finden kann, um die entsprechende Ausnahme zu werfen.

+0

Ich habe org.junit.internals.AssumptionViolatedException importiert, aber es funktioniert nicht entweder –

1

Ich hatte das gleiche Problem, als ich meine Spring JUnit Tests schrieb. Wie viele Beiträge online verfügbar, gibt es nur zwei Alternativen

1) Bleiben Sie up to date mit dem Spring-Version und verwenden Sie die neueste Version von JUnit oder 2) Lassen Sie Ihre aktuelle Spring-Version und verwenden JUnit Version 4.4 oder Weniger.

Ich wählte die Option # 2, wo wir unsere Spring-Version bei 2,5 verlassen und JUnit 4.4 heruntergeladen. Danach hat alles gut funktioniert. Ein weiterer zu beachtender Punkt ist, dass, wenn Ihr Projekt, d. H. Das Projekt A, in dem Sie Ihre Tests schreiben, eine Abhängigkeit von einem anderen Projekt B hat, das eine andere Version von Spring hat, würden Sie auch einen ähnlichen Fehler erhalten. Ich habe es auf die harte Tour gelernt.

-Prashanth

Verwandte Themen