Skip to content

Latest commit

 

History

History
102 lines (75 loc) · 4.07 KB

release-notes-5.10.0-M1.adoc

File metadata and controls

102 lines (75 loc) · 4.07 KB

5.10.0-M1

Date of Release:

Scope:

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

JUnit Platform

Bug Fixes

Deprecations and Breaking Changes

  • Building native images with GraalVM now requires configuring the build arg --initialize-at-build-time=org.junit.platform.launcher.core.LauncherConfig.

New Features and Improvements

  • Promote various "experimental" APIs that have matured to "stable" including ModuleSelector, EngineDiscoveryListener, EngineDiscoveryRequestResolver, LauncherSession, LauncherSessionListener, parallel execution support classes, @Suite and related annotations, and others.

  • All utility methods in ReflectionSupport that return a List now have counterparts which return a Stream.

  • For consistency with JUnit Jupiter lifecycle callbacks, listener method pairs for started/finished and opened/closed events are now invoked using "wrapping" semantics. This means that finished/closed event methods are invoked in reverse order compared to the corresponding started/opened event methods when multiple listeners are registered. This affects the following listener interfaces: TestExecutionListener, EngineExecutionListener, LauncherDiscoveryListener, and LauncherSessionListener.

  • New LauncherInterceptor SPI for intercepting the creation of instances of Launcher and LauncherSessionlistener as well as invocations of the discover and execute methods of the former. Please refer to the User Guide for details.

  • Support for limiting the max-pool-size-factor for parallel execution via a configuration parameter.

  • The new testfeed details mode for ConsoleLauncher prints test execution events as they occur in a concise format.

JUnit Jupiter

Bug Fixes

  • The {displayName} placeholder of @ParameterizedTest is no longer parsed during the evaluation of the MessageFormat, now @DisplayName and Kotlin method names can contain single apostrophes and MessageFormat elements, such as {data}.

Deprecations and Breaking Changes

  • The dynamic parallel execution strategy now allows the thread pool to be saturated by default.

New Features and Improvements

  • Promote various "experimental" APIs that have matured to "stable" including MethodOrderer, ClassOrderer, InvocationInterceptor, LifecycleMethodExecutionExceptionHandler, @TempDir, parallel execution annotations, and others.

  • @RepeatedTest can now be configured with a failure threshold which signifies the number of failures after which remaining repetitions will be automatically skipped. See the User Guide for details.

  • New ArgumentsAccessor.getInvocationIndex() method that supplies the index of a @ParameterizedTest invocation.

  • @EmptySource now supports additional types, including Collection and Map subtypes with a public no-arg constructor.

  • DisplayNameGenerator methods are now allowed to return null, in order to signal to fall back to the default display name generator.

  • New AnnotationBasedArgumentsProvider convenience base class which implements both ArgumentsProvider and AnnotationConsumer.

  • New AnnotationBasedArgumentConverter convenience base class which implements both ArgumentConverter and AnnotationConsumer.

  • New junit.jupiter.execution.parallel.config.dynamic.max-pool-size-factor configuration parameter to set the maximum pool size factor.

  • New junit.jupiter.execution.parallel.config.dynamic.saturate configuration parameter to disable pool saturation.

JUnit Vintage

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements