1- [[release-notes-5.10.0-M1 ]]
2- == 5.10.0-M1
1+ [[release-notes-5.10.0]]
2+ == 5.10.0
33
4- *Date of Release:* May 13, 2023
4+ *Date of Release:* ❓
55
66*Scope:*
77
1212* Dry-run mode for test execution
1313* New `NamespacedHierarchicalStore` for use in third-party test engines
1414* Stacktrace pruning to hide internal JUnit calls
15+ * New `@SelectMethod` support in test `@Suite` classes.
1516* New `TempDirFactory` SPI for customizing how temporary directories are created
1617* Failure threshold for `@RepeatedTest`
1718* New convenience base classes for implementing `ArgumentsProvider` and `ArgumentConverter`
2122* Numerous bug fixes and minor improvements
2223
2324For a complete list of all _closed_ issues and pull requests for this release, consult the
24- link:{junit5-repo}+/milestone/65?closed=1+[5.10.0-M1] milestone page in the JUnit
25+ link:{junit5-repo}+/milestone/65?closed=1+[5.10.0-M1],
26+ link:{junit5-repo}+/milestone/69?closed=1+[5.10.0-RC1], and
27+ link:{junit5-repo}+/milestone/70?closed=1+[5.10.0 GA] milestone pages in the JUnit
2528repository on GitHub.
2629
2730
28- [[release-notes-5.10.0-M1- junit-platform]]
31+ [[release-notes-5.10.0-junit-platform]]
2932=== JUnit Platform
3033
3134==== Deprecations and Breaking Changes
3235
3336* Building native images with GraalVM now requires configuring the build arg
3437 `--initialize-at-build-time=org.junit.platform.launcher.core.LauncherConfig` and
3538 `--initialize-at-build-time=org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter`.
39+ * The `getMethodParameterTypes()` methods in `MethodSelector` and `NestedMethodSelector`
40+ have been deprecated and replaced by `getParameterTypeNames()` for greater clarity.
3641
3742==== New Features and Improvements
3843
39- * Promote various "experimental" APIs that have matured to "stable" including
44+ * Various "experimental" APIs have been promoted to "stable", including
4045 `ModuleSelector`, `EngineDiscoveryListener`, `EngineDiscoveryRequestResolver`,
4146 `LauncherSession`, `LauncherSessionListener`, parallel execution support classes,
4247 `@Suite` and related annotations, and others.
@@ -49,10 +54,17 @@ repository on GitHub.
4954 `ClassLoader`. This allows parameter types to be resolved with custom `ClassLoader`
5055 arrangements (such as OSGi). Consequently, `DiscoverySelectors.selectMethod(Class<?>,
5156 String, String)` also now works properly with custom `ClassLoader` arrangements.
57+
58+ * New `@SelectMethod` selector support in the `@Suite` test engine.
59+ * Classes may now be selected by fully-qualified name via the `names` attribute in
60+ `@SelectClasses`.
5261* New overloaded constructors for `ClassSelector`, `NestedClassSelector`,
5362 `MethodSelector`, and `NestedMethodSelector` that take an explicit `ClassLoader` as a
5463 parameter, allowing selectors to select classes in custom `ClassLoader` arrangements
5564 like in OSGi.
65+ * New `selectMethod()` and `selectNestedMethod()` variants in `DiscoverySelectors` that
66+ accept a `Class<?>...` argument of parameter types as a type-safe alternative to
67+ providing the names of parameter types as a comma-delimited string.
5668* For consistency with JUnit Jupiter lifecycle callbacks, listener method pairs for
5769 started/finished and opened/closed events are now invoked using "wrapping" semantics.
5870 This means that finished/closed event methods are invoked in reverse order compared to
@@ -80,12 +92,13 @@ repository on GitHub.
8092* New dry-run mode to simulate test execution without actually running tests. Please refer
8193 to the <<../user-guide/index.adoc#launcher-api-dry-run-mode, User Guide>> for details.
8294* Stack traces produced by failing tests are now pruned of calls from the `org.junit`,
83- `java `, and `jdk ` packages by default . This feature can be disabled or configured to
84- prune other calls via configurations parameters . Please refer to the
95+ `jdk.internal.reflect `, and `sun.reflect ` packages. This feature can be disabled via a
96+ configuration parameter . Please refer to the
8597 <<../user-guide/index.adoc#stacktrace-pruning, User Guide>> for details.
98+ * New `getAncestors()` method in `TestDescriptor`.
8699
87100
88- [[release-notes-5.10.0-M1- junit-jupiter]]
101+ [[release-notes-5.10.0-junit-jupiter]]
89102=== JUnit Jupiter
90103
91104==== Bug Fixes
@@ -105,43 +118,55 @@ repository on GitHub.
105118 default.
106119* Implicit type conversion of boolean values like in `@CsvSource` is now stricter, only
107120 allowing values `"true"` or `"false"` (case-insensitive), in order to make accidental
108- mistakes apparent, avoiding potential confusion.
121+ mistakes apparent and to avoid potential confusion.
109122
110123==== New Features and Improvements
111124
112- * Promote various "experimental" APIs that have matured to "stable" including
125+ * Various "experimental" APIs have been promoted to "stable", including
113126 `MethodOrderer`, `ClassOrderer`, `InvocationInterceptor`,
114127 `LifecycleMethodExecutionExceptionHandler`, `@TempDir`, parallel execution annotations,
115128 and others.
129+ * `JAVA_22` has been added to the `JRE` enum for use with JRE-based execution conditions.
130+ * New `reason` attribute in `@Execution` which can be used to document the reason for
131+ using the selected execution mode.
132+ * New `junit.jupiter.execution.parallel.config.dynamic.max-pool-size-factor` configuration
133+ parameter to set the maximum pool size factor.
134+ * New `junit.jupiter.execution.parallel.config.dynamic.saturate` configuration
135+ parameter to disable pool saturation.
116136* `@RepeatedTest` can now be configured with a failure threshold which signifies the
117137 number of failures after which remaining repetitions will be automatically skipped. See
118138 the <<../user-guide/index.adoc#writing-tests-repeated-tests, User Guide>> for details.
119- * New `ArgumentsAccessor.getInvocationIndex()` method that supplies the index of a
120- `@ParameterizedTest` invocation.
139+ * If `@MethodSource` is used with a non-static factory method that should be `static`, the
140+ exception thrown now provides the user a meaningful explanation of how to address the
141+ problem.
121142* `@EmptySource` now supports additional types, including `Collection` and `Map` subtypes
122143 with a public no-arg constructor.
123- * `DisplayNameGenerator` methods are now allowed to return `null`, in order to signal to
124- fall back to the default display name generator .
144+ * New `ArgumentsAccessor.getInvocationIndex()` method that supplies the index of a
145+ `@ParameterizedTest` invocation .
125146* New `AnnotationBasedArgumentsProvider` convenience base class which implements both
126147 `ArgumentsProvider` and `AnnotationConsumer`.
127148* New `AnnotationBasedArgumentConverter` convenience base class which implements both
128149 `ArgumentConverter` and `AnnotationConsumer`.
129- * New `junit.jupiter.execution.parallel.config.dynamic.max-pool-size-factor` configuration
130- parameter to set the maximum pool size factor.
131- * New `junit.jupiter.execution.parallel.config.dynamic.saturate` configuration
132- parameter to disable pool saturation.
150+ * `@TempDir` can now be used as a meta-annotation in order to create custom _composed
151+ annotations_. See the `@JimfsTempDir` example in the
152+ <<../user-guide/index.adoc#writing-tests-built-in-extensions-TempDirectory, User Guide>>
153+ for details.
154+ * `@TempDir` now successfully cleans up files and directories on Windows that are set to
155+ read-only.
133156* New `TempDirFactory` SPI for customizing how the `@TempDir` extension creates temporary
134157 directories. See the
135158 <<../user-guide/index.adoc#writing-tests-built-in-extensions-TempDirectory, User Guide>>
136159 for details.
137- * New `junit.jupiter.tempdir.factory.default` configuration parameter to set the default
138- `TempDirFactory` for temporary directories.
139- * If `@MethodSource` is used with a non-static factory method that should be `static`, the
140- exception thrown now provides the user a meaningful explanation of how to address the
141- problem.
160+ * The <<../user-guide/index.adoc#extensions-RandomNumberExtension, User Guide>> now
161+ includes an example implementation of the `RandomNumberExtension` in order to improve
162+ the documentation for extension registration via `@ExtendWith` on fields.
163+ * The scope of applicability for `TestWatcher` implementations is now more extensively
164+ documented in the User Guide and Javadoc.
165+ * `DisplayNameGenerator` methods are now allowed to return `null`, in order to signal to
166+ fall back to the default display name generator.
142167
143168
144- [[release-notes-5.10.0-M1- junit-vintage]]
169+ [[release-notes-5.10.0-junit-vintage]]
145170=== JUnit Vintage
146171
147172No changes.
0 commit comments