Testing auf der JVM

JUnit 5.6 verbessert das Fehler-Reporting

Katharina Degenmann

© Shutterstock / Kamira

Das Team von JUnit hat Version 5.6 des Test-Frameworks vorgestellt. Neuerungen finden sich in JUnit Jupiter, JUnit Platform und JUnit Vintage. Wir werfen einen Blick auf die Highlights von JUnit 5.6.

JUnit ist ein Framework zum Testen von Java-Programmen und eine Kombination aus JUnit Platform, Junit Jupiter und JUnit Vintage. Nach knapp sechs Monaten Entwicklungszeit hat das JUnit-Team nun die neuste Version des Frameworks, JUnit 5.6, vorgestellt.

JUnit 5.6: Das ist neu

JUnit-Plattform

Die JUnit-Plattform hat diverse Neuerungen im Gepäck, so können Tests nun mit beliebigen oder auch ganz ohne Tags ausgeführt werden. Anstelle der Tags greift man ab sofort auf Ausdrücke wie any() und none() zurück.

Überdies ist der ThrowableCollector.toTestExecutionResult() verfügbar, ebenso wie eine neue printFailuresTo(PrintWriter, int)-Methode in TestExecutionSummary. Mit dieser lässt sich die maximale Anzahl der zu druckenden Zeilen für Exception Stack Traces festlegen.

Abgeschafft wurde hingegen die Abhängigkeit zwischen dem junit-platform-commons-Modul und dem java.compiler-Modul. Genauer gesagt, wurde ein neues internes Programm in PackageUtils eingeführt, das Funktionen implementiert, die javax.lang.model.SourceVersion.isName(CharSequence) aus dem java.compiler-Modul entspricht.

JUnit Jupiter

Neben JUnit-Plattform darf sich auch JUnit Jupiter über neue Features freuen. So bringt das neue Release Support für mehrstellige Delimiter in @CsvSource und @CsvFileSource sowie für benutzerdefinierte Nullwerte in @CsvSource und @CsvFileSource.

Mit dem letzten Release, JUnit 5.5, wurden sogenannte Timeout-Annotations für bessere Tests eingeführt. In JUnit 5.6 wurden dem Framework die neuen Konfigurationsparameter junit.jupiter.execution.timeout.mode spendiert, um Timeouts bei Tests zu steuern. Unterstützt werden hierbei Werte wie enabled, disabled und disabled_on_debug.

JUnit Vintage

Natürlich hat sich auch beim dritten im Bunde, JUnit Vintage, etwas getan. In den Release Notes ist von Leistungsverbesserungen für Projekte mit einer großen Anzahl von Tests sowie für Testklassen mit einer großen Anzahl von Methoden die Rede.

Weitere Änderungen

Neben einigen Bugfixes in allen drei Bereichen gibt es zahlreiche Änderungen. So wurden etwa in der JUnit-Plattform eine neue EngineDiscoveryListener-Schnittstelle implementiert. @EnabledIf und @DisabledIf wurden hingegen aus dem API von JUnit Jupiter entfernt. Und an einer Fehlerberichterstattung bei Ausfällen während der Testentdeckung und -Ausführung wurde geschraubt.

Wer die neuen Features gerne selbst testen möchte, kann dazu den User Guide verwenden. Alle weiteren Informationen, Features und Verbesserungen stehen in den Release Notes zum Nachlesen bereit.

Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina ist hauptberuflich hilfsbereite Online- und Print-Redakteurin sowie Bücher- und Filme-Junkie. Nebenbei ist sie Möchtegern-Schriftstellerin, die heimlich hofft, eines Tages ihr Geld als Kaffee-Testerin zu verdienen. Von Februar 2018 bis Februar 2020 hat sie als Redakteurin bei der Software & Support Media GmbH gearbeitet, davor hat sie Politikwissenschaft und Philosophie studiert.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: