[[release-notes-5.9.3]] == 5.9.3 *Date of Release:* April 26, 2023 *Scope:* Bug fixes and enhancements since 5.9.2 For a complete list of all _closed_ issues and pull requests for this release, consult the link:{junit5-repo}+/milestone/67?closed=1+[5.9.3] milestone page in the JUnit repository on GitHub. [[release-notes-5.9.3-junit-platform]] === JUnit Platform No changes. [[release-notes-5.9.3-junit-jupiter]] === JUnit Jupiter ==== Bug Fixes * Parameter types for _local_ `@MethodSource` factory method names are now validated. For example, `@MethodSource("myFactory(example.NonexistentType)")` will now result in an exception stating that `example.NonexistentType` cannot be resolved to a valid type. * The syntax for parameter types in _local_ `@MethodSource` factory method names now supports canonical array names -- for example, you may now specify `int[]` as in `@MethodSource("myFactory(int[])")` instead of the _binary_ name `[I` as in `@MethodSource("myFactory([I)")` (which was already supported) and `@MethodSource("myFactory(java.lang.String[])")` instead of `@MethodSource("myFactory([Ljava.lang.String;)")`. * The search algorithm used to find `@MethodSource` factory methods now applies consistent semantics for _local_ qualified method names and fully-qualified method names for overloaded factory methods. * The `+{displayName}+` placeholder for `@ParameterizedTest` invocation names is no longer parsed using `java.text.MessageFormat`. Consequently, any text in the display name of the `@ParameterizedTest` method will be included unmodified in the invocation display name. For example, Kotlin method names and custom display names configured via `@DisplayName` can now contain apostrophes (`'`) as well as text resembling `MessageFormat` elements such as `+{0}+` or `+{data}+`. * Exceptions thrown for files that cannot be deleted when cleaning up a temporary directory created via `@TempDir` now include the root cause. * Lifecycle methods are allowed to be declared as `private` again for backwards compatibility; however, using `private` visibility for lifecycle methods is strongly discouraged and will be disallowed in a future release. ==== New Features and Improvements * The search algorithm used to find `@MethodSource` factory methods now falls back to lenient search semantics when a factory method cannot be found by qualified name (without a parameter list) and also provides better diagnostics when a unique factory method cannot be found. [[release-notes-5.9.3-junit-vintage]] === JUnit Vintage No changes.