Test-Framework: JUnit 5.4 ist erschienen

Fünf Monate nach der Veröffentlichung von JUnit 5.3 ist nun ein neues Release des Unit-Test-Frameworks erschienen.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Test-Framework: JUnit 5.4 ist erschienen
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Letzte Woche ist die Version 5.4 von JUnit, dem wohl verbreitetsten Framework zum Erzeugen von Unit-Tests, erschienen. Das neue Release umfasst etliche wichtige Bugfixes, neue Features und Überarbeitungen. Einige Features wurden darüber hinaus als "veraltet" (deprecated) markiert. Weiterführende Informationen biete die Release Notes.

Neu ist unter anderem das junit-jupiter-Abhängigkeits-Aggregations-Artefakt für ein vereinfachtes Abhängigkeitsmanagement in Build-Tools. Dann gibt es ein neues junit-plattform-reporting-Artefakt mit einem LegacyXmlReportGeneratingListener, der XML-Berichte so generiert, das sie mit JUnit 4 erstellten Testberichten kompatibel sind. Das ebenfalls neue junit-platform-testkit-Artefakt umfasst eine Test Kit API zum Überprüfen der Testausführung einer auf JUnit laufenden Test-Engine.

Wenn ein Container oder ein Test fehlschlägt, werden die Ursache und die unterdrückten Ausnahmen nun in den Stacktrace aufgenommen, den der ConsoleLauncher ausgibt. Der ConsoleLauncher bereinigt nun benutzerdefinierte Anzeigenamen, bevor sie auf die Konsole gedruckt werden. Gängige Leerzeichen wie \t, \n, \x0B, \f und \r werden durch ein Standard-Raumzeichen ersetzt, und alle anderen ISO-Steuerzeichen werden als ein einzelner Punkt (.) ausgegeben.

Die neue ModifierSupport-Klasse bietet eine API für Erweiterungs- und Testmaschinenautoren, um Modifier von Klassen und Mitgliedern zu inspizieren. AnnotationSupport bietet neue Methoden zum Auffinden von kommentierten Feldern und deren Werten. ReflectionSupport bietet neue Methoden zum Suchen von Feldern und zum Lesen des Werts eines Feldes.

Die Launcher-API bietet nun eine execute(TestPlan, TestExecutionListener…​)-Methode, mit der man einen zuvor entdeckten TestPlan ausführen kann. Schließlich führt @RunWith(JUnitPlatform.class) die Testerkennung nicht mehr zweimal aus, und Implementierungen von HierarchicalTestEngine können nun ein Verhalten hinzufügen, das sich um den Aufruf von Node.before(), Node.execute() und Node.after() mit dem neuen Node.around()-Hook dreht.

JUnit 5 ist eine komplette Neuentwicklung des Java-Test-Frameworks mit dem Ziel, diverse Altlasten von JUnit 4 abzustoßen. Ein erstes Release war im September 2017 nach über zwei Jahren Entwicklung erschienen. JUnit 5 ist modular aufgebaut: Es besteht aus den drei Unterprojekten Platform, Jupiter und Vintage. Platform ist die Grundlage zum Starten von Tests und soll die Brücke zu Build-Werkzeugen und Entwicklungsumgebungen bilden. Jupiter verbindet das Programmiermodell von JUnit 5 mit dem neuen Erweiterungsmodell. Vintage bietet eine TestEngine, die passend zum Namen Tests ermöglicht, die auf JUnit 3 oder 4 basieren. (ane)