New @EnabledIf and @DisabledIf annotations can be used to enable or disable a test or container based on condition methods.

New MethodOrderer named DisplayName that sorts test methods alphanumerically based on their display names.

New DisplayNameGenerator named Simple (based on Standard ) that removes trailing parentheses for methods with no parameters.

assertThrows() for Kotlin can now be used with suspending functions and other lambda contexts that require inlining.

The JRE enum now provides a static currentVersion() method that returns the enum constant for the currently executing JRE, e.g. for use in custom execution conditions and other extensions.

The name attribute of @ParameterizedTest is now clearly documented to be a MessageFormat pattern.

Synthetic constructors are now ignored when instantiating a test class.

The Javadoc for the provideTestTemplateInvocationContexts() method in TestTemplateInvocationContextProvider has been aligned with the actual implementation. Providers are now officially allowed to return an empty stream, and the error message when all provided streams are empty is now more helpful.

New getDisplayName() method in MethodDescriptor for use in MethodOrderer implementations.

New assertLinesMatch() method overloads in Assertions that accept two Stream<String> instances for comparison.

assertTimeoutPreemptively() in Assertions now reports the stack trace of the timed out thread in the cause of the AssertionFailedError .

assertTimeoutPreemptively() now uses threads with a specific name, conveying their use by the framework, to facilitate debugging and stack trace analysis.

All @Enabled* / @Disabled* annotations now have an optional disabledReason attribute that can be used to provide an additional explanation as to why a test or container might be disabled.

JAVA_16 has been added to the JRE enum for use with JRE-based execution conditions.

New MethodOrderer.MethodName to replace MethodOrderer.Alphanumeric with the exact same functionality but a more descriptive name.

New junit.jupiter.testmethod.order.default configuration parameter to set the default MethodOrderer that will be used unless @TestMethodOrder is present.

New DynamicTest.stream() factory method that accepts a Stream instead of an Iterator for the input source.

@CsvFileSource now allows one to specify file paths as an alternative to classpath resources.

@CsvFileSource and @CsvSource now provide a maxCharsPerColumn attribute for configuring the maximum number of characters per column.

Arguments in display names of parameterized test invocations are now truncated if they exceed a configurable maximum length (defaults to 512 characters).

New @Isolated annotation allows to run test classes in isolation of other test classes when using parallel test execution.

New TypedArgumentConverter for converting one specific type to another, therefore reducing boilerplate type checks compared to implementing ArgumentConverter directly.