This document contains the change log for all JUnit 5 releases since 5.3 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.
Date of Release: ❓
For a complete list of all closed issues and pull requests for this release, consult the 5.4.0-M1 milestone page in the JUnit repository on GitHub.
The JUnit Platform Surefire Provider (
junit-platform-surefire-provider) has been discontinued and is no longer released as part of JUnit 5. Please use Maven Surefire’s native support for running tests on the JUnit Platform instead (requires Maven Surefire 2.22.0 or higher).
ModifierSupportclass providing an API for extension and test engine authors to inspect modifiers of classes and members.
See the User Guide for details.
Assertions.assertAll()is now thread-safe — for example, it can now be used with a parallel
OS.SOLARISenum constant used with
@DisabledOnOsis now also detected as the current operating system if the
os.nameJVM system property contains
Assertions.assertEquals()variants that compare floating point numbers using a delta now support a delta of zero.
Assertions.assertLinesMatch()no longer throws a
NullPointerExceptionafter evaluating a fast-forward match if there are more expected lines after the fast-forward match than remain in the actual results. This bug only manifested itself if the expected list size was equal to or greater than the actual list size.
Assertions.assertEquals()variants that accept mixed boxed and unboxed primitive values, allowing statements such as
assertEquals(42, Integer.valueOf("42"))to compile.
Assertions.assertNotEquals()variants that accept the following primitive data types:
double. Mixed boxed and unboxed primitive values are also supported.
AssumptionViolatedExceptionis now supported in JUnit Jupiter for aborting a test mid-flight due to a failed assumption — for example, via JUnit 4’s
In addition to returning streams,
@TestFactory-annotated methods may now return a single
DynamicNode— for example, a
Implicit conversion from hexadecimal and octal string representations to integral types in
@ParameterizedTestarguments — for example, conversion from
@DisplayNameGenerationannotation that allow declarative configuration of a pre-defined or custom display name generator.
@Ignoreannotation is now supported for disabling test classes and test methods via the
See the User Guide for details.
Date of Release: September 11, 2018
Scope: Bug fixes since 5.3.0
For a complete list of all closed issues and pull requests for this release, consult the 5.3.1 milestone page in the JUnit repository on GitHub.
OutOfMemoryErrorregression introduced in JUnit 5.3.0 has been fixed.
NodeTestTaskused by implementations of
HierarchicalTestEngine(such as the Jupiter and Vintage test engines) no longer retains references to contextual state after a node has completed execution. This allows state such as instances of test classes to be properly garbage collected by the JVM.
NodeTestTaskinstance was created for each
TestDescriptorbefore starting execution. Now they are created on the fly and can be garbage collected by the JVM after the enclosing container has finished.
The OpenTest4J dependency has been updated to 1.1.1 to fix a serialization incompatibility between 1.0.0 and 1.1.0 that caused failure messages to be discarded when used from Gradle and potentially other tools and IDEs.
assertThrows()that are passed a method reference for an overloaded method with a
voidreturn type once again compile.
For example, given an instance of
java.lang.Objectstored in a variable named
assertThrows(Exception.class, object::wait)compiled against JUnit 5.2.0, failed to compile against JUnit 5.3.0, but now compiles against JUnit 5.3.1.
Date of Release: September 3, 2018
Scope: Parallel test execution, output capture for
TestInstanceFactory extension API, custom test sources for dynamic tests, promotion of
the dynamic test API from experimental to maintained status, discontinuation of the
junit-platform-gradle-plugin, deprecation of the
well as various minor improvements and bug fixes.
For complete details consult the 5.3.0 Release Notes online.