Junit außerhalb von Eclipse

VampyAnna

Grünschnabel
Hallo Leute,
ich habe ein ziemliches Probelm,
und zwar soll ich ein Programm schreiben dass einerseits den Pfad zu den unit tests bekommt und anderer seits den Pfad zu den jar archiven, die die zu testenden Klassen enthalten.
Das Programm soll die Tests ausführen und eine Meldung über den Erfolgsstatus geben. :confused:
Es wird unter Java gerarbeitet die Tests sollen mit Junit durchgeführt werden.

Ich habe zwar bereits ein wenig mit JUnit gearbeitet habe aber die Tests immer nur mittels Eclipse ( run as Junit test) ausgeführt.

Nun meine Frage:
Wie kann man die Tests programmatisch außerhalb von Eclipse ausführen?
Bin für alle Tips dankbar
 
Danke dir,
die Seiten habe ich auch schon gesehen/gelesen.
Das bietet mir die Möglichkeits das ganze über die Kommandozeile zu machen.
Was ich suche ist vielmehr die möglichkeit die Tests aus einem anderen Java Programm auszuführen.
( vielleicht habe ich mich in der Frage unglücklich ausgedrückt)
 
Hi,

du willst also ein Java Programm schreiben was in einem anderen Java Programm die JUnit tests durchführt. Verstehe ich das richtig ?

GReeze Chimaira
 
Mein Programm soll aus einem Verzeichnis(und seinen Unterverzeichnissen) alle Tests raussuchen und sie dann ausführen.
Habe jetz versucht eine Testsuite über den DirectorySuiteBuilder zu bauen,
hat aber irendiwe nicht funktioniert weil er keine Tests findet obwohl in dem Verzeichnis mehrere Tests liegen
 
Is das ne Übungsaufgabe, oder soll das produktiv laufen? Für ein Produktivprojekt würde ich sowas nicht neu schreiben. Maven benutzen und gut ist.

Ich versteh nicht ganz den Sinn warum du ein extra Programm dafür schreiben willst (deswegen die Frage ob Übung oder Produktiveinsatz). Wenn ich automatisiert Tests auszuführen habe, mach ich das mit nem Buildsystem und nutze den evtl. herauskommenden Report.

Gruß
Ollie
 
Das ist eine Aufgabe, die ich im Rahmen meines Praktikums machen muss.
Warum mein Projektleiter es genau so haben möchte weiß ich nicht..
Und es soll nicht über einen Ant Task gemacht werden, bzw nur dann über Ant wenn es anderweitig unmöglich ist
 
Hm, okay... dann ist das wahrscheinlich zu Lernzwecken. Ich würd sowas halt nicht mehr selbst code wollen.

Ant muss nicht sein. Schau dich mal um, was es mit Java für Möglichkeiten gibt, externe Programme zu starten (http://www.galileocomputing.de/openbook/javainsel7/javainsel_09_005.htm). Dann sollte es nämlich reichen, die Java VM mit einem JUnit TestRunner zu starten und deine Parameter (Testklassen und Bibliotheken) als Kommandozeilenparameter mitzugeben.

Gruß
Ollie
 
Also,
es geht mit dem TestRunner von Junit.
Die Jararchive werden in den Path des Classloaders aufgenommern.
(Junit 3.x)
Dann die Testclassen im Verzeichnis suchen mit dem Classloader laden und in eine Testsuite packen.
und einfach
Code:
 TestRunner runner = new TestRunner();
runner.doRun(suite);

für Junit 4
die Klassen Laden und in einem Array ablegen
und dann:
Code:
JUnitCore.runClasses()Array[]);
 
Zurück