JUnit 5.1.0 veröffentlicht

Die erst im September 2017 mit Version 5 erschienene Generalüberholung der Testbibliothek JUnit hat am 18. Februar 2018 ein neues Minor-Release erhalten. Die neue Version 5.1.0 bietet eine ganze Reihe von Verbesserungen, Bugfixes und neuen Features.

Hervorzuheben sind die folgenden Punkte, die in die neue Version eingeflossen sind:

  • Testerkennung unter Java 9
    • Tests können alternativ zum Klassenpfad-Scanning auch über ein Scannen von Java 9 Modulen gefunden werden. Testmodule können auch direkt über einen Kommandozeilenparameter für den Konsolen-Launcher angegeben werden.
  • Verbesserung der Kotlin-Unterstützung
    • Kotlin-freundlichere Assertions, die Unterstützung von Kotlins Reified Generics und die Möglichkeit, explizite Typparameter weglassen zu können, machen die Verwendung von JUnit mit Kotlin einfacher.
  • Einführung einer Tag Expression Language zum Filtern von Tests für die Ausführung
    • Mithilfe der Expression Language kann man Filterregeln für Tests definieren, die mit bestimmten Tags annotiert sind. Lässt man seine Tests dann mit dem Konsolen-Launcher, Maven Surefire oder Gradle laufen, werden nur diese Tests ausgeführt. Z. B. führt der Ausdruck (micro | integration) & (foo | baz) nur die micro und integration Tests für foo oder baz aus.
  • Verbesserung der bedingten Testausführung
    • Neue Annotationen mit dem Namensmuster @Enabled* und @Disabled* erlauben eine feinere deklarative Teststeuerung. Zum Beispiel lassen sich Tests mit @EnabledOnOs oder @DisabledOnJre für bestimmte Betriebssysteme oder Java-Versionen aktivieren oder deaktivieren. Mit den Annotationen @EnabledIf und @DisabledIf können nun auch Skripte einer dynamischen Skriptsprache (z. B. JavaScript oder Groovy) ausgeführt werden, um zu bestimmen, ob ein Test ausgeführt werden soll oder nicht.
  • Verbesserungen für das Schreiben parametrisierter Tests
  • Programmatische Registrierung von Extensions
    • Felder einer Klasse, die eine Extension halten, können mit der neuen Annotation @RegisterExtension programmatisch registriert werden.
  • Verbesserungen beim Extension Kontext
    • JUnit Erweiterungen (Extensions) können nun auf die Konfigurationswerte der JUnit Plattform und auf den Lebenszyklus der aktuellen Testinstanz zugreifen. Schließbare Ressourcen für den Extension-Store werden unterstützt (ClosableResource) und neue Hilfsmethoden helfen dabei, den Extension-Code schlank zu halten.
  • Verbesserungen bei der Unterstützung von alten (Vintage) JUnit 4 Tests
    • Die VintageTestEngine unterstützt ebenfalls den neuen ModuleSelector zum Scannen von Java 9 Modulen. Deaktivierte Tests werden nun korrekt gehandhabt, um z. B. von Gradle richtig verarbeitet zu werden.

Die vollständige Liste der Verbesserungen kann man in den Release Notes nachlesen.

Short URL for this post: https://wp.me/p4nxik-2Z5
Roland Krüger

About Roland Krüger

Software Engineer at Orientation in Objects GmbH. Find me on Google+, follow me on Twitter.
This entry was posted in Java and Quality and tagged , . Bookmark the permalink.

Leave a Reply