PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JUnit mit Eclipse - ich steh grad auf'm Schlauch


creave
2010-11-12, 23:42:26
Hallo erstmal!

Nach längerer JUnit-Abstinenz wollte ich gerade mal wieder ein paar simple Tests in Eclipse für eine neue Klasse aufsetzen und scheitere kläglich.

In den Projekteigenschaften ist beim BuildPath JUnit4 als Library hinzugefügt und meine Testklasse erbt von "TestCase". Doch schon ein simples


@Test
public void HelloWorld() {
String s = "HelloWorld";
assertEquals("Just a test to see if everything works ...", "HelloWorld", s);
}


funktioniert nicht und endet mit der Fehlermeldung: "junit.framework.AssertionFailedError: No tests found in ...".

Okay, gut. Meine Methode beginnt nicht mit dem Wort "test". Aber ich bin mir ziemlich sicher, dass das in Version 4 auch nicht mehr so sein muss. Egal dachte ich, hänge also das Wort "test" vorne dran. Und siehe da: es klappt.
Nebenbei gesagt bräuchte ich dabei die Annotation @Test garnicht mehr. Das ist also nur ein Workaround, keine Lösung.. ich schätze mal er macht einfach ein Fallback auf Version 3 und beachtet die Annotation überhaupt nicht.

Die nächste Methode soll auf eine provozierte Exception prüfen und die Annotation lautet folglich @Test(expected=IllegalArgumentException.class).
Hierbei wird nun rumgemeckert, dass im Code eine Exception geworfen wurde und deshalb der JUnit-Test nicht ausgeführt werden konnte.. aber genau dafür ist er doch da in diesem Fall :freak:

Also wieder wird die Annotation nicht beachtet.

Was ist da Faul? Es ist übrigens JUnit 4.8.1, aber mit der habe ich damals auch gearbeitet und es gibt außer den Snapshots eh nur eine neuere, welche in Eclipse bisher nicht drin ist, es sei denn man updated manuell. Aber daran liegt es wohl nicht, der simple Test von oben müsste doch laufen, der lief ja auch schon lange vor 4.8.1.

Danke!

minos5000
2010-11-13, 08:25:08
Ich hab zwar keine Antwort auf deine Fragen, aber auch exakt die gleichen Probleme mit Junit 4.8.1 ;)
An die Testmethoden hänge ich inzwischen einfach ein "test" vorne dran, aber warum as expected nicht funktioniert finde ich ärgerlich...

Gast
2010-11-13, 11:10:29
Ich hab bisher zwar nur mit JUnit 3 gearbeitet, aber versuche anstatt der Annotation mal testHallo() als Funktionsnamen.

Und erstelle leere Funktionen mit tearDown() und setUp()...

creave
2010-11-13, 12:09:23
Ich hab bisher zwar nur mit JUnit 3 gearbeitet, aber versuche anstatt der Annotation mal testHallo() als Funktionsnamen.

Und erstelle leere Funktionen mit tearDown() und setUp()...


Danke für die Hilfe, aber wie oben bereits geschrieben, das von dir beschriebene funktioniert schon. Aber Annotations braucht man halt auch noch für andere Dinge.

edit: habe mal das "extends TestCase" entfernt und alles läuft wie gewollt, minos5000, probier das auch mal.