This document contains the change log for all JUnit 5 releases since 5.11 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.13.0-M1

Date of Release:

Scope:

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

JUnit Platform

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

JUnit Jupiter

Bug Fixes

  • If @ParameterizedTest(autoCloseArguments = true), all arguments returned by the used ArgumentsProvider implementations are now closed even if the test method declares fewer parameters.

  • AutoCloseable arguments returned by an ArgumentsProvider are now closed even if they are wrapped with Named.

  • AutoCloseable arguments returned by an ArgumentsProvider are now closed even if a failure happens prior to invoking the parameterized method.

Deprecations and Breaking Changes

New Features and Improvements

  • Introduce @ContainerTemplate and ContainerTemplateInvocationContextProvider that allow declaring a top-level or @Nested test class as a template to be invoked multiple times. This may be used, for example, to inject different parameters to be used by all tests in the container template class or to set up each invocation of the container template differently.

  • New TestTemplateInvocationContext.prepareInvocation(ExtensionContext) callback method allows preparing the ExtensionContext before the test template method is invoked. This may be used, for example, to store entries in its Store to benefit from its cleanup support or for retrieval by other extensions.

JUnit Vintage

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

5.12.0

Date of Release: February 21, 2025

Scope:

  • Output file attachments for tests and containers

  • Improvements to the Open Test Reporting XML output

  • Resource lock definition improvements

  • Thread dumps on test timeouts

  • Parameterized test validation improvements

  • Filtering support for auto-registered extensions

  • Kotlin contracts for assertions

  • Configurable Jupiter extension context scope

  • Enhancements to the ConsoleLauncher

  • Better support for GraalVM native image usage

  • Improved discovery support for file-based test engines

  • Customizable classpath scanning

  • Parallel execution support in JUnit Vintage engine

  • Numerous bug fixes and other enhancements

For complete details consult the 5.12.0 Release Notes online.