2009-07-28 10 views
3

Ich benutze JUnit 3.x TestRunner, die alle Tests sofort vor der Ausführung instantiiert.JUnit Test Runner, der Tests erstellt, bevor sie ausgeführt werden

Gibt es einen Test Runner, der jeden Test (oder zumindest die Tests der einzelnen Testsuits) kurz vor dem Start erstellt?
Ich kann JUnit 4.x Läufer verwenden, aber meine Tests sind 3.x Tests.

+0

Könnten Sie bitte einige weitere Informationen geben, warum Sie dies tun müssen? Ich bin nicht der Einzige, der ahnt, dass es noch etwas zu wissen gibt. – guerda

+0

Wir verfügen über einen umfangreichen Testinfrastrukturcode, mit dem wir Testumgebungen und Testdaten organisieren können. Leider verwenden einige Tests Konstruktoren und einige Tests verwenden setUp, um sie zu steuern. Das Problem, das wir haben, ist zeitbezogen. Anstatt Refactoring zu verwenden, um Dinge von Konstruktoren zu SetUp zu verschieben, wäre es einfacher, einen Konstruktor zu haben, der kurz vor setUp ausgeführt wird. – topchef

+0

Auch kann ich keinen signifikanten Unterschied zwischen Unit Test Framework Erstellen von Tests JIT (Execute Constructors) oder Anordnen von ihnen, bevor Tests laufen. – topchef

Antwort

3

In JUnit 3 müssten Sie Ihre eigene TestSuite-Klasse schreiben, die die Instanziierung der Tests in der Suite verzögerte.

1

Sie machen es wahrscheinlich falsch.

Jeder Komponententest sollte unabhängig sein und nicht von anderen Testergebnissen abhängen. Andernfalls, wenn einer der Tests bricht, bricht es alle Tests ab, die davon abhängen. Sie werden also eine Menge Fehler sehen, ohne leicht zu verstehen, was die eigentliche Ursache ist. Auf der anderen Seite, wenn alle Komponententests unabhängig sind, ist ein unterbrochener Test extrem einfach zu debuggen und zu beheben.

EDIT: Ich nehme an, der Grund, warum Sie die ursprüngliche Frage stellen, ist, weil Sie einige Abhängigkeiten in Ihrem Test haben. Wenn ich falsch liege, ignorieren Sie bitte diese Antwort :)

Verwandte Themen