Test-Framework: JUnit 5.6 geht mit neuen Funktionen an den Start

Version 5.6 des Framework zum Erzeugen von Unit-Tests ist mit wichtigen Bugfixes und einer Reihe von Verbesserungen erschienen.

In Pocket speichern vorlesen Druckansicht
Test-Framework: JUnit 5.4 ist erschienen
Lesezeit: 2 Min.
Von
  • Matthias Parbel

Rund ein halbes Jahr nach Veröffentlichung von JUnit 5.5 haben die Macher hinter dem Test-Framework nun die Version 5.6 vorgelegt. In die neue Version sind nicht nur wichtige Fehlerbereinigungen und Überarbeitungen eingeflossen, sondern auch neue Funktionen wie die Annotationen @EnabledForJreRange und @DisabledForJreRange, mit denen sich das Ausführen von Tests für verschiedene JRE-Versionen ein- beziehungsweise ausschalten lässt.

Neben den neu hinzugefügten Annotationen wurden in JUnit Jupiter unter anderen @CsvSource and @CsvFileSource überarbeitet. Über die dokumentierte Unterstützung von CSV-Dateien hinaus, die mit @CsvFileSource geladen wurden, können Tester für beide Felder benutzerdefinierte null-Werte und Mehrfachtrennzeichen nutzen. Skriptbasierte Bedingungs-APIs und sie betreffende Implementierungen wurden in JUnit Jupiter 5.5 bereits als veraltet kennzeichnet, in der API von Jupiter 5.6 fallen daher @EnabledIf und @DisabledIf weg.

Jupiter Platform wartet ebenfalls mit einigen neuen Funktionen und Verbesserungen auf – darunter zusätzliche Methoden in DiscoverySelectors, mit denen sich durch spezifische Selektoren (NestedClassSelector und NestedMethodSelector) individuelle Tests in vererbten verschachtelten Klassen auswählen und ausführen lassen. Dank der neuen Ausdrücke any() und none() können nun sämtliche Tests sowohl mit wie auch ohne Tags ablaufen. Darüber hinaus ist TestExecutionSummary.Failure jetzt serialisierbar und die neue Methode printFailuresTo(PrintWriter, int) in TestExecutionSummary erlaubt es, eine maximal zu druckende Zahl von Zeilen für Exception Stack Traces festzulegen.

Ein vollständiger Überblick aller Verbesserungen und Neuerungen in JUnit 5.6 finden sich in den Release Notes sowie im GitHub Repository. (map)