What changed in JUnit from 5 to 6

6 releases numbered after 5.14.4 up to and including 6.1.3, stable releases only. 5.14.4 and 6.1.3 are the newest stable releases of 5 and 6 we track; this page follows them as new ones ship.

12 changes across 6 releases

Added 2

6.1.1

  • Allow excluding engines from memory cleanup mode via new junit.platform.execution.memory.cleanup.engines.excluded configuration parameter that takes a comma-separated list of engine IDs
  • JAVA_28 has been added to the JRE enum for use with JRE-based execution conditions
Changed 1

6.0.2

  • Change API status of recommended method in ArgumentsProvider as well as ParameterDeclaration(s) as "maintained" rather than "experimental"
Fixed 9

6.1.3

  • Provide reachability metadata for junit-platform-engine to restore compatibility with GraalVM 25

6.1.2

  • Fix NoTestsDiscoveredException for suites containing only dynamic tests

6.1.1

  • The Suite Engine no longer logs "No TestIdentifier with unique ID" for failing tests
  • Restore original values set by @SetSystemProperty when used with a @ParameterizedTest

6.0.3

  • Fix a deadlock issue in NamespacedHierarchicalStore.computeIfAbsent(N, K, Function)
  • Make @EnabledOnJre and @DisabledOnJre work reliably when used with JRE.OTHER in a test running on a Java runtime whose version is higher than the version of the last JAVA_* constant in the JRE enum

6.0.2

  • Make ConsoleLauncher compatible with JDK 26 by avoiding final field mutations
  • Enable recursive updates when using NamespacedHierarchicalStore.computeIfAbsent(N, K, Function)
  • Allow using @ResourceLock on classes annotated with @ClassTemplate or @ParameterizedClass

One release in the range carries no categorized changes yet: 6.1.0. Their original notes, where the vendor published any, are below.

Original release notes, newest first

The list above is our reading of these notes; the originals from JUnit Team are here, one fold per release.

6.1.3JUnit 6.1.3

Date of Release: August 7, 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.3 milestone page in the JUnit repository on GitHub.

JUnit Platform
Bug Fixes
  • Provide reachability metadata for junit-platform-engine to restore compatibility with GraalVM 25
JUnit Jupiter

No changes.

JUnit Vintage

No changes.

View originalPermalink

6.1.2JUnit 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.

View originalPermalink

6.1.1JUnit 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.

View originalPermalink

6.1.0JUnit 6.1.0

JUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0

See Release Notes.

New Contributors

Full Changelog: https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0

View originalPermalink

6.0.3JUnit 6.0.3

Date of Release: February 15, 2026 Scope: Bug fixes and enhancements since 6.0.2 For a complete list of all closed issues and pull requests for this release, consult the 6.0.3 milestone page in the JUnit repository on GitHub.

JUnit Platform
Bug Fixes
  • A deadlock issue in NamespacedHierarchicalStore.computeIfAbsent(N, K, Function) has been fixed.
JUnit Jupiter
Bug Fixes
  • @EnabledOnJre and @DisabledOnJre once again work reliably when used with JRE.OTHER in a test running on a Java runtime whose version is higher than the version of the last JAVA_* constant in the JRE enum.
JUnit Vintage

No changes.

View originalPermalink

6.0.2JUnit 6.0.2

Date of Release: January 6, 2026 Scope: Bug fixes and enhancements since 6.0.1 For a complete list of all closed issues and pull requests for this release, consult the 6.0.2 milestone page in the JUnit repository on GitHub.

JUnit Platform
Bug Fixes
  • Make ConsoleLauncher compatible with JDK 26 by avoiding final field mutations.
  • Enable recursive updates when using NamespacedHierarchicalStore.computeIfAbsent(N, K, Function). This provides parity with the deprecated NamespacedHierarchicalStore.getOrComputeIfAbsent(N, K, Function)
JUnit Jupiter
Bug Fixes
  • Allow using @ResourceLock on classes annotated with @ClassTemplate (or @ParameterizedClass).
  • Change API status of recommended method in ArgumentsProvider as well as ParameterDeclaration(s) as "maintained" rather than "experimental".
JUnit Vintage

No changes.

View originalPermalink