Ich habe eine Reihe von Tests geschrieben, die nicht nur in separate Klassen aufgeteilt sind, sondern, je nachdem, welchen Bereich meiner Anwendung sie testen, in separate Unterpakete. So sieht mein Paket-Struktur ein bisschen wie folgt aus:Ausführen von JUnit4-Testklassen in der angegebenen Reihenfolge
my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two
Im my.package.tests
Paket ich eine Elternklasse haben, die alle Tests in den Unterpaketen eins bis vier erstrecken. Nun möchte ich die Reihenfolge auswählen, in der die Tests ausgeführt werden; nicht innerhalb der Klassen (was mit der FixMethodOrder annotation möglich scheint), sondern die Reihenfolge der Klassen oder Teilpakete selbst (also diejenigen im Teilpaket one
zuerst, dann die in two
, ect.). Einige der Testklassen verwenden die Parameterized runner, nur für den Fall, dass es einen Unterschied macht. Die Auswahl der Reihenfolge ist nicht erforderlich, damit die Tests erfolgreich sind, sie sind unabhängig voneinander; Es wäre jedoch hilfreich, sie so zu sortieren, dass sie die Reihenfolge widerspiegeln, in der die verschiedenen Teile des Programms normalerweise verwendet werden, da dies die Analyse ein wenig einfacher macht.
Jetzt hätte ich am liebsten eine Konfigurationsdatei, die JUnit mitteilt, in welcher Reihenfolge die Tests ausgeführt werden sollen; Ich vermute jedoch, dass es nicht so einfach sein wird. Welche Möglichkeiten habe ich hier und was wäre die einfachste? Ich möchte auch nur die Unterpakete auflisten, nicht die verschiedenen Klassen in den Paketen oder sogar die Testfunktionen in den Klassen.
Ich benutze Java 1.6.0_26 (ich habe keine Wahl hier) und JUnit 4.11.
Danke, das funktioniert wie ein Charme! Ich denke, es ist nicht die Option, um es irgendwie zu sagen "alle Tests im folgenden Paket ausführen" obwohl, richtig? – blalasaadri
Nein, Sie können nicht automatisch sagen, dass alle Klassen in einem Paket (AFAIK, mindestens) enthalten. – blgt
Die allgemeine Idee hier ist, dass Sie kann in jedes Paket eine Suite-Klasse einfügen, die alle Tests in diesem Paket enthält.Sie legen dann Ihre "Eltern" -Suite in das übergeordnete Paket und schließen diese ein. Auf diese Weise imitieren Sie die Pakethierarchie in Ihren Suite-Klassen. – blgt