This document contains the change log for all JUnit 5 releases since 5.10 GA.

Please refer to the User Guide for comprehensive reference documentation for programmers writing tests, extension authors, and engine authors as well as build tool and IDE vendors.

5.11.0-M1

Date of Release:

Scope:

For a complete list of all closed issues and pull requests for this release, consult the 5.11.0-M1 milestone page in the JUnit repository on GitHub.

JUnit Platform

Bug Fixes

  • Allow junit-platform-launcher to be used as a Java module when junit.platform.launcher.interceptors.enabled is set to true.

Deprecations and Breaking Changes

New Features and Improvements

  • New StringConversionSupport in junit-platform-commons to expose internal conversion logic used by Jupiter’s DefaultArgumentConverter for use in third-party extensions and test engines.

JUnit Jupiter

Bug Fixes

Deprecations and Breaking Changes

  • Change used Kotlin API and language version from 1.3 to 1.6.

New Features and Improvements

JUnit Vintage

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

5.10.1

Date of Release: November 5, 2023

Scope: minor bug fixes and improvements since 5.10.0.

For a complete list of all closed issues and pull requests for this release, consult the 5.10.1 milestone page in the JUnit repository on GitHub.

JUnit Platform

Bug Fixes

  • Field predicates are now applied while searching the type hierarchy. This fixes bugs in findFields(…​) and streamFields(…​) in ReflectionSupport as well as findAnnotatedFields(…​) and findAnnotatedFieldValues(…​) in AnnotationSupport.

  • Method predicates are now applied while searching the type hierarchy. This fixes bugs in findMethods(…​) and streamMethods(…​) in ReflectionSupport as well as findAnnotatedMethods(…​) in AnnotationSupport.

JUnit Jupiter

Bug Fixes

  • A package-private static field annotated with @TempDir is no longer shadowed by a non-static field annotated with @TempDir when the non-static field resides in a different package and has the same name as the static field.

  • A package-private class-level lifecycle method annotated with @BeforeAll or @AfterAll is no longer shadowed by a method-level lifecycle method annotated with @BeforeEach or @AfterEach when the method-level lifecycle method resides in a different package and has the same name as the class-level lifecycle method.

  • The ON_SUCCESS cleanup mode of @TempDir now takes into account failures of test methods and nested tests when it’s declared on the class level, e.g. as a static field.

  • The RandomNumberExtension example in the User Guide has been updated to properly support Integer types as well as non-static field injection.

New Features and Improvements

  • Improved Javadoc for Assertions.assertTimeoutPreemptively regarding thread interrupt.

  • Documentation for @Disabled and conditional annotations now explicitly explains that such annotations are not inherited by subclasses.

JUnit Vintage

Bug Fixes

  • Fixed reporting for JUnit 3 test classes that use JUnit 4’s @Ignored annotation.

5.10.0

Date of Release: July 23, 2023

Scope:

  • Promotion of various experimental APIs to stable

  • New LauncherInterceptor SPI

  • New testfeed details mode for ConsoleLauncher

  • New ConsoleLauncher subcommand for test discovery without execution

  • Dry-run mode for test execution

  • New NamespacedHierarchicalStore for use in third-party test engines

  • Stacktrace pruning to hide internal JUnit calls

  • New @SelectMethod support in test @Suite classes.

  • New TempDirFactory SPI for customizing how temporary directories are created

  • Failure threshold for @RepeatedTest

  • New convenience base classes for implementing ArgumentsProvider and ArgumentConverter

  • Custom class loader support for class/method selectors, @MethodSource, @EnabledIf, and @DisabledIf

  • Improved configurability of parallel execution

  • Numerous bug fixes and minor improvements

For complete details consult the 5.10.0 Release Notes online.