Wir verwenden JUnit 4 zum Testen: Wir haben Klassen, die keine Unterklasse von TestCase
sind, und sie haben öffentliche Methoden, die mit @Test
kommentiert sind. Wir haben eine Datei mit vielen @Test
Methoden. Es wäre schön, in der Lage sein eine Teilmenge von ihnen über Ant von der Kommandozeile, in der Stil dieses Rezept für JUnit 3 auszuführen:Ausführen einer Teilmenge von JUnit @Test-Methoden
ant runtest -Dtest=MyTest -Dtests=testFoo,testBar
http://today.java.net/pub/a/today/2003/09/12/individual-test-cases.html
Ich habe versucht, zu denken, Wege, dies mit Java-Reflektion, etc. zu erreichen. Da es scheinbar keine Möglichkeit gibt, @Test
Methoden zu "verstecken" oder ihre Annotationen zur Laufzeit zu entfernen, scheint die einzige Methode die defineClass
Methode des ClassLoader zu sein, was ziemlich schwierig erscheint.
P.S. Die richtige Sache in dieser Situation wäre, die Datei aufzuteilen, aber gibt es Alternativen?
Danke für Ihre Zeit.
OK, das ist viel eleganter als meine Lösung :) – guerda
Ich habe mit diesem gleichen (oder zumindest sehr ähnlichen) Problem für ein paar Tage gekämpft und es gibt eine Sache, die mich belästigt. Was ist, wenn Sie Ihren FilteredRunner mit Powermock verwenden möchten, der auch eine eigene @RunWith (PowermockRunner.class) -Anmerkung benötigt? –
Große Antwort, aber jetzt veraltet. Ich denke BlockJUnit4ClassRunner muss anstelle von TestClassRunner verwendet werden – Illidanek