Frage

Ich habe eine JUnit 4 Test-Suite mit BeforeClass und Afterclass Methoden, die ein Setup / Teardown für die folgenden Testklassen machen. Was ich brauche, ist die Testklassen auch von ihnen selbst laufen, aber dafür brauche ich ein Setup / Teardown Szenario (BeforeClass und Afterclass oder so ähnlich) für jede Testklasse. Die Sache ist die, dass, wenn ich die Suite laufe Ich will nicht das Setup / Teardown auszuführen vor und nach jeder Testklasse, ich möchte nur die Setup / Teardown von der Testsuite (einmal) auszuführen. Ist es möglich ? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich weiß nicht, von jedem Standard-Weg, dies mit JUnit zu tun. Der Grund dafür, wie Sie wahrscheinlich bereits wissen, ist, dass Ihre Testfälle unabhängig voneinander ausgeführt werden sollen. Dies betrifft die „normalen“ Setup / Teardown Methoden, die vor und nach jedem Testverfahren laufen. Klasse Auf- und Abbau ist ein bisschen anders, obwohl -. Obwohl ich immer noch meine Tests unabhängig laufen würde es vorziehen, und blieb aus der Not Zone

Wenn Sie jedoch wirklich überzeugt sind von dem, was Sie tun, können Sie eine globale Flag verwenden, um zu signalisieren, ob die Klasse Setup / Teardown laufen soll, und für seinen Zustand in den Klassen Setup / Teardown-Methoden zu überprüfen. In Ihrer Test-Suite, können Sie eine spezielle Klasse, die als allererste, enthalten, die nichts anderes tut, als das Setup ausführen und den globalen Flag auf die realen Testfall gesetzt, um anzuzeigen, dass ihre Klasse Setup / Teardown Methoden nicht ausgeführt werden müssen. In ähnlicher Weise kann eine spezielle letzte Klasse in der Suite die Teardown Code auszuführen. Der Nachteil ist, dass ich Angst JUnit bin nicht die Reihenfolge der Ausführung von Testklassen innerhalb einer Suite garantieren, obwohl die meisten wahrscheinlich es sie in der angegebenen Reihenfolge ausführt - aber das ist nur eine Implementierung Detail. Probieren Sie es aus, es kann für Sie arbeiten -. Aber es gibt keine Garantie, es wird immer das tun, was Sie erwarten,

Andere Tipps

Wenn Sie jUnit haben 4.7+ ich empfehlen, sich in die neue Funktion namens Regeln (die in diese Blog-Post ). Sie könnten nicht genau das, was Sie wollen, aber sie sind wahrscheinlich das Beste, was Sie mit jUnit erhalten.

Angeblich soll TestNG hat eine bessere Prüfmöglichkeiten Gruppierung, aber ich habe wirklich in sie nicht sah mich noch.

Nein, es gibt keinen Standard-Weg, dies in JUnit zu tun, obwohl man etwas hacken könnte als Péter Török vorgeschlagen.

Beachten Sie jedoch, dass Sie mehr oder weniger missbrauchen JUnit dies zu tun. Der ganze Sinn der Einheit testet es, dass sie unabhängig von ihnen. Dies liegt daran, Abhängigkeiten zwischen den Tests insgesamt Wartung Alptraum (Tests scheitern, weil der Lauf in der falschen Reihenfolge) erstellen.

Also ich Sie raten würde zu stark überlegen, ob es nicht besser ist, nur immer das Setup ausführen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top