Release Notes

This version is still in development and not considered stable yet.
For the latest stable release, please see JUnit 6.1.2!

This document contains the change log for all JUnit releases since 6.1.0.

6.2.0-M1

Date of Release:

Scope:

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

JUnit Platform

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

  • When using ConsoleLauncher with the -cp/--classpath option, it now creates a custom ClassLoader that does not implement AutoCloseable to avoid accidentally closing it in test code which can lead to test failures that are hard to diagnose.

  • When using a third-party engine that uses the junit- prefix a discovery issue is emitted.

  • junit-platform-console-standalone is now part of the junit-bom

  • @org.junit.platform.suite.api.Disabled can be used annotate a @Suite-annotated class. If so annotated, the suite will not be executed.

  • The org.junit.jupiter.api.assertThrows Kotlin API and its related functions have added variants that use an exception class as a value rather than a type parameter. This is to primarily to address the current issue/s when trying to use @ParameterizedTest that produces exceptions as values.

JUnit Jupiter

Bug Fixes

  • The junit.jupiter.params.displayname.argument.maxlength configuration parameter is now validated and rejected with a clear error when set to a non-positive value instead of causing parameterized tests to fail with an internal exception.

  • The elements of @CsvSource.value[] are now treated as individual CSV documents. This prevents unfinished quotes in one document from affecting another.

Deprecations and Breaking Changes

New Features and Improvements

  • Added OS.NETBSD and OS.DRAGONFLYBSD enum constants for use with @EnabledOnOs and @DisabledOnOs.

  • Failures caused by @Timeout expirations now include a hint about enabling thread dumps.

JUnit Vintage

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

6.1.3

Date of Release:

Scope: Bug fixes and enhancements since 6.1.0

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

JUnit Platform

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

JUnit Jupiter

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

JUnit Vintage

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

6.1.2

Date of Release: July 12, 2026

Scope: Bug fixes and enhancements since 6.1.1

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

JUnit Platform

Bug Fixes

  • Fix NoTestsDiscoveredException for suites containing only dynamic tests

JUnit Jupiter

No changes.

JUnit Vintage

No changes.

6.1.1

Date of Release: June 28, 2026

Scope: Bug fixes and enhancements since 6.1.0

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

JUnit Platform

Bug Fixes

  • The Suite Engine no longer logs "No TestIdentifier with unique ID" for failing tests.

New Features and Improvements

  • Allow excluding engines from memory cleanup mode (in case it’s enabled) via new junit.platform.execution.memory.cleanup.engines.excluded configuration parameter that takes a comma-separated list of engine IDs (for example, junit-vintage,junit-jupiter).

JUnit Jupiter

Bug Fixes

  • Restore original values set by @SetSystemProperty when used with a @ParameterizedTest.

New Features and Improvements

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

JUnit Vintage

No changes.

6.1.0

Date of Release: May 19, 2026

Scope:

  • New @DefaultLocale and @DefaultTimeZone built-in extensions

  • New built-in extension for clearing/setting/restoring system properties

  • Configurable deletion strategy for @TempDir that allows ignoring failures

  • New org.junit.start module for usage in compact source files

  • Execution mode configuration support for dynamic tests and containers

  • Improved stack trace pruning for assertion failures

  • New org.junit.jupiter.api.Constants class for referencing configuration parameters

  • Improvements to legacy XML reports for parameterized test classes

  • New parallel test executor implementation

  • New experimental memory cleanup mode for large test suites

For complete details consult the 6.1.0 Release Notes online.