PackageTrack
Sign in Get early access

org.junit.jupiter:junit-jupiter-engine

6.1.3 #663 most downloaded on Maven Central junit-team/junit-framework

What this package is like to depend on

Last release 16 days ago

08 Aug 2026

Ships fairly regularly

a new release about every 4 weeks

Rarely documented

notes for 11 of 62 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

113 releases · first in 2016

17 releases in the last 12 months

see the full history below

Release timeline

113 releases · Jul 2016 to Aug 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 113
  1. 6.1.3 08 Aug 2026
    Release notes

    JUnit 6.1.3 = Platform 6.1.3 + Jupiter 6.1.3 + Vintage 6.1.3

    See Release Notes.

    Full Changelog: r6.1.2...r6.1.3

    Open source →
    Release notes

    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.

    Open source →
  2. 6.1.2 12 Jul 2026
    Release notes

    JUnit 6.1.2 = Platform 6.1.2 + Jupiter 6.1.2 + Vintage 6.1.2

    See Release Notes.

    Full Changelog: r6.1.1...r6.1.2

    Open source →
    Release notes

    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.

    Open source →
  3. 6.1.1 28 Jun 2026
    Release notes

    JUnit 6.1.1 = Platform 6.1.1 + Jupiter 6.1.1 + Vintage 6.1.1

    See Release Notes.

    Full Changelog: r6.1.0...r6.1.1

    Open source →
    Release notes

    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.

    Open source →
  4. 6.1.0 19 May 2026
    Release notes

    JUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0

    See Release Notes.

    New Contributors

    Full Changelog: r6.0.3...r6.1.0

    Open source →
    Release notes

    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 a complete list of all closed issues and pull requests for this release, consult the 6.1.0-M1 , 6.1.0-RC1 , and 6.1.0 milestone pages in the JUnit repository on GitHub.

    JUnit Platform

    Bug Fixes

    A deadlock issue in NamespacedHierarchicalStore.computeIfAbsent(N, K, Function) has been fixed.

    WorkerThreadPoolHierarchicalTestExecutorService now rechecks the done condition before rejecting an extraneous worker.

    Missing precondition checks have been added to Launcher implementations.

    Failures to resolve selectors are now propagated by the Suite Engine.

    AbstractTestDescriptor.getChildren() now returns immutable set of children rather than a merely unmodifiable set.

    Deprecations and Breaking Changes

    Deprecate constructors for ForkJoinPoolHierarchicalTestExecutorService in favor of the new ParallelHierarchicalTestExecutorServiceFactory that also supports WorkerThreadPoolHierarchicalTestExecutorService .

    In the EngineTestKit , Executions.started() has been deprecated in favor of Executions.finished() , since started executions are always finished.

    New Features and Improvements

    Support for creating a ModuleSelector from a java.lang.Module and using its classloader for test discovery.

    New selectClasspathResources(String…​) and selectClasspathResources(List<String) methods in DiscoverySelectors .

    OpenTestReportGeneratingListener now supports redirecting XML events to a socket via the new junit.platform.reporting.open.xml.socket configuration parameter. When set to a port number, events are sent to 127.0.0.1:<port> instead of being written to a file.

    New WorkerThreadPoolHierarchicalTestExecutorService implementation used for parallel test execution that is backed by a regular thread pool rather than a ForkJoinPool . Engine authors should switch to use ParallelHierarchicalTestExecutorServiceFactory rather than instantiating a concrete HierarchicalTestExecutorService implementation for parallel execution directly.

    New experimental memory cleanup mode that is useful when executing a large number of tests. It can be enabled via the new junit.platform.execution.memory.cleanup.enabled configuration parameter.

    Allow implementations of HierarchicalTestEngine to specify which nodes require the global read lock by overriding the Node.isGlobalReadLockRequired() method to return false .

    TestDescriptor implementation requirements have now been clarified in the corresponding Javadoc.

    The UniqueId.uniqueIdFormat field has been removed, reducing the size of UniqueId objects.

    JUnit Jupiter

    Bug Fixes

    Recursive updates are now supported when using computeIfAbsent(K, Function, Class) in the ExtensionContext.Store , providing parity with the deprecated getOrComputeIfAbsent(K, Function, Class) method.

    Legacy XML reports now include the index of @ClassTemplate / @ParameterizedClass invocations in test names to make them unique.

    Legacy XML reports now include parent display names to make it easier to distinguish between invocations for different parameters.

    Deprecations and Breaking Changes

    The OTHER constant of JRE has been deprecated in favor of the int / int[] annotation attributes of @EnabledOnJre , @DisabledOnJre , @EnabledForJreRange , and @DisabledForJreRange which allow referencing JRE versions later than those supported by the JRE enum.

    The org.junit.jupiter.engine.Constants class and its constants are now deprecated in favor of org.junit.jupiter.api.Constants .

    New Features and Improvements

    JUnit Pioneer 's DefaultLocaleExtension and DefaultTimeZoneExtension are now part of JUnit Jupiter. Find examples in the User Guide .

    JUnit Pioneer’s SystemPropertyExtension is now part of JUnit Jupiter. Find examples in the User Guide . For details regarding implementation differences between JUnit Pioneer and Jupiter, see the corresponding pull request .

    @TempDir now allows configuring a deletion strategy for temporary directories. This is typically used to gain control over what happens when deletion of a file or directory fails (see User Guide for details).

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

    Introduce new module org.junit.start for writing and running tests. It simplifies using JUnit in compact source files together with a single module import statement. Find an example at the User Guide .

    Arguments may now be created from instances of Iterable via the following new methods which make it easier to dynamically build arguments from collections when using @ParameterizedTest .

    Arguments.of(Iterable<?>)

    Arguments.argumentsFrom(Iterable<?>) (alias for of(Iterable<?>) )

    Arguments.argumentSetFrom(String, Iterable<?>)

    Arguments.toList() — returns a mutable List<@Nullable Object>

    @EmptySource now supports Iterable , Iterator , and ListIterator .

    @Deprecated factory methods are now excluded in the fallback String-to-Object conversion algorithm.

    Introduce new dynamicTest(Consumer<? super Configuration>) factory method for dynamic tests. It allows configuring the ExecutionMode of the dynamic test in addition to its display name, test source URI, and executable.

    Introduce new dynamicContainer(Consumer<? super Configuration>) factory method for dynamic containers. It allows configuring the ExecutionMode of the dynamic container and/or its children in addition to its display name, test source URI, and children.

    Enrich assertInstanceOf failure using the test subject Throwable as cause. It results in the stack trace of the test subject Throwable to get reported along with the failure.

    Make implementation of HierarchicalTestExecutorService used for parallel test execution configurable via the new junit.jupiter.execution.parallel.config.executor-service configuration parameter to in order to add support for WorkerThreadPoolHierarchicalTestExecutorService . Please refer to the User Guide for details.

    Internal stack frames are now removed from AssertionFailedError stack traces.

    New trimStacktrace(Class<?>) and retainStackTraceElements(int) methods in AssertionFailureBuilder which allow user-defined assertions to trim their stack traces.

    Generic inline value classes (such as kotlin.Result<T> ) can now be used as parameters in @ParameterizedTest methods when kotlin-reflect is on the classpath. Note, however, that primitive-wrapper inline value classes (such as UInt or custom value classes wrapping primitives) are not yet supported.

    Kotlin-specific assertions now include a variant of assertThrowsExactly with reified generics.

    The new org.junit.jupiter.api.Constants class provides constants for Configuration Parameters specific to the Jupiter engine.

    The @EmptySource annotation now provides a type attribute that allows configuring the type of the empty argument explicitly. This is intended to be used in conjunction with an ArgumentConverter that supports the specified type.

    JUnit Vintage

    No changes.

    Open source →
  5. 6.1.0-RC1 25 Apr 2026 pre-release
    Release notes

    JUnit 6.1.0-RC1 = Platform 6.1.0-RC1 + Jupiter 6.1.0-RC1 + Vintage 6.1.0-RC1

    See Release Notes.

    New Contributors

    Full Changelog: r6.1.0-M1...r6.1.0-RC1

    Open source →
  6. 6.1.0-M1 17 Nov 2025 pre-release

    Nothing published for this version

  7. 6.0.3 15 Feb 2026
    Release notes

    JUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3

    See Release Notes.

    Full Changelog: r6.0.2...r6.0.3

    Open source →
    Release notes

    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.

    Open source →
  8. 6.0.2 06 Jan 2026
    Release notes

    JUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2

    See Release Notes.

    Full Changelog: r6.0.1...r6.0.2

    Open source →
    Release notes

    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.

    Open source →
  9. 6.0.1 31 Oct 2025
    Release notes

    Date of Release: October 31, 2025

    Scope: Bug fixes and enhancements since 6.0.0

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

    JUnit Platform

    Bug Fixes

    The jdk.jfr package is now an optional import when using the junit-platform-launcher as an OSGi bundle.

    New Features and Improvements

    Legacy documentation regarding Java 8 compatibility has been removed from the User Guide.

    JUnit Jupiter

    Bug Fixes

    A regression introduced in version 6.0.0 caused an exception when using @CsvSource or @CsvFileSource if the delimiter or delimiterString attribute was set to # . This occurred because # was used as the default comment character without an option to change it. To resolve this, a new commentCharacter attribute has been added to both annotations. Its default value remains # , but it can now be customized to avoid conflicts with other control characters.

    Fix IllegalAccessError thrown when using the Kotlin-specific assertDoesNotThrow assertion.

    Stop reporting discovery issues for synthetic methods, particularly in conjunction with Kotlin suspend functions.

    Fix support for test methods with the same signature as package-private methods declared in super classes in different packages.

    Deprecations and Breaking Changes

    The org.junit.jupiter.migrationsupport module descriptor has been marked as deprecated for removal.

    New Features and Improvements

    The @CsvSource and @CsvFileSource annotations now allow specifying a custom comment character using the new commentCharacter attribute.

    Improve error message when @ParameterizedClass is used with field injection without providing enough arguments.

    Allow calling the TypedArgumentConverter constructor for @Nullable T target types without having to cast class literals to Class<@Nullable T> .

    JUnit Vintage

    New Features and Improvements

    Allow disabling the reporting of discovery issues by the JUnit Vintage engine (including the one reported for its deprecation) by setting the new junit.vintage.discovery.issue.reporting.enabled configuration parameter to false .

    Open source →
  10. 6.0.0 30 Sep 2025
    Release notes

    Date of Release: September 30, 2025

    Scope:

    Java 17 and Kotlin 2.1 baseline

    Single version number for Platform, Jupiter, and Vintage

    Use of JSpecify annotations to express nullability

    Integration of JFR functionality in junit-platform-launcher

    Removal of junit-platform-runner and junit-platform-jfr

    Deterministic order of @Nested classes

    MethodOrderer.Default and ClassOrderer.Default for @Nested classes

    Inheritance of @TestMethodOrder by enclosed @Nested classes

    Switch to FastCSV library for @CsvSource and @CsvFileSource

    Support for using Kotlin suspend functions as test methods

    New --fail-fast mode for ConsoleLauncher

    Support for cancelling test execution via CancellationToken

    Removal of various deprecated behaviors and APIs

    For complete details consult the 6.0.0 Release Notes online.

    Open source →
  11. 6.0.0-RC3 14 Sep 2025 pre-release

    Nothing published for this version

  12. 6.0.0-RC2 25 Aug 2025 pre-release

    Nothing published for this version

  13. 6.0.0-RC1 20 Aug 2025 pre-release

    Nothing published for this version

  14. 6.0.0-M2 22 Jul 2025 pre-release

    Nothing published for this version

  15. 6.0.0-M1 27 Jun 2025 pre-release

    Nothing published for this version

  16. 5.14.4 26 Apr 2026
    Release notes

    JUnit 5.14.4 = Platform 1.14.4 + Jupiter 5.14.4 + Vintage 5.14.4

    See Release Notes.

    Full Changelog: r5.14.3...r5.14.4

    Open source →
  17. 5.14.3 15 Feb 2026
    Release notes

    JUnit 5.14.3 = Platform 1.14.3 + Jupiter 5.14.3 + Vintage 5.14.3

    See Release Notes.

    Full Changelog: r5.14.2...r5.14.3

    Open source →
  18. 5.14.2 06 Jan 2026
    Release notes

    JUnit 5.14.2 = Platform 1.14.2 + Jupiter 5.14.2 + Vintage 5.14.2

    See Release Notes.

    New Contributors

    Full Changelog: r5.14.1...r5.14.2

    Open source →
  19. 5.14.1 31 Oct 2025

    Nothing published for this version

  20. 5.14.0 30 Sep 2025

    Nothing published for this version

  21. 5.14.0-RC1 23 Sep 2025 pre-release

    Nothing published for this version

  22. 5.13.4 21 Jul 2025

    Nothing published for this version

  23. 5.13.3 04 Jul 2025

    Nothing published for this version

  24. 5.13.2 24 Jun 2025

    Nothing published for this version

  25. 5.13.1 07 Jun 2025

    Nothing published for this version

  26. 5.13.0 30 May 2025

    Nothing published for this version

  27. 5.13.0-RC1 16 May 2025 pre-release

    Nothing published for this version

  28. 5.13.0-M3 02 May 2025 pre-release

    Nothing published for this version

  29. 5.13.0-M2 24 Mar 2025 pre-release

    Nothing published for this version

  30. 5.13.0-M1 21 Mar 2025 pre-release

    Nothing published for this version

  31. 5.12.2 11 Apr 2025

    Nothing published for this version

  32. 5.12.1 14 Mar 2025

    Nothing published for this version

  33. 5.12.0 21 Feb 2025

    Nothing published for this version

  34. 5.12.0-RC2 12 Feb 2025 pre-release

    Nothing published for this version

  35. 5.12.0-RC1 07 Feb 2025 pre-release

    Nothing published for this version

  36. 5.12.0-M1 31 Jan 2025 pre-release

    Nothing published for this version

  37. 5.11.4 16 Dec 2024

    Nothing published for this version

  38. 5.11.3 21 Oct 2024

    Nothing published for this version

  39. 5.11.2 04 Oct 2024

    Nothing published for this version

  40. 5.11.1 25 Sep 2024

    Nothing published for this version

  41. 5.11.0 14 Aug 2024

    Nothing published for this version

  42. 5.11.0-RC1 31 Jul 2024 pre-release

    Nothing published for this version

  43. 5.11.0-M2 17 May 2024 pre-release

    Nothing published for this version

  44. 5.11.0-M1 23 Apr 2024 pre-release

    Nothing published for this version

  45. 5.10.5 04 Oct 2024

    Nothing published for this version

  46. 5.10.4 24 Sep 2024

    Nothing published for this version

  47. 5.10.3 27 Jun 2024

    Nothing published for this version

  48. 5.10.2 04 Feb 2024

    Nothing published for this version

  49. 5.10.1 05 Nov 2023

    Nothing published for this version

  50. 5.10.0 23 Jul 2023

    Nothing published for this version

  51. 5.10.0-RC2 19 Jul 2023 pre-release

    Nothing published for this version

  52. 5.10.0-RC1 06 Jul 2023 pre-release

    Nothing published for this version

  53. 5.10.0-M1 13 May 2023 pre-release

    Nothing published for this version

  54. 5.9.3 26 Apr 2023

    Nothing published for this version

  55. 5.9.2 10 Jan 2023

    Nothing published for this version

  56. 5.9.1 20 Sep 2022

    Nothing published for this version

  57. 5.9.0 26 Jul 2022

    Nothing published for this version

  58. 5.9.0-RC1 04 Jul 2022 pre-release

    Nothing published for this version

  59. 5.9.0-M1 15 May 2022 pre-release

    Nothing published for this version

  60. 5.8.2 28 Nov 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive