1- [[release-notes-5.5.0-RC1 ]]
2- == 5.5.0-RC1
1+ [[release-notes-5.5.0]]
2+ == 5.5.0
33
4- *Date of Release:* June 6 , 2019
4+ *Date of Release:* June 30 , 2019
55
66*Scope:*
77
88* Declarative `@Timeout` support
99* New `InvocationInterceptor` extension API
1010* New `LifecycleMethodExecutionExceptionHandler` extension API
11- * Additional Kotlin friendly assertions
11+ * Deprecation of script-based conditions (`@EnabledIf` and `@DisabledIf`)
12+ * Configurable test discovery implementation for `TestEngine` authors
1213* Explicit Java module descriptors
13- * Deprecation of script-based conditions (`@EnabledIf`/`@DisabledIf`)
14+ * Various minor improvements and bug fixes
1415
1516For a complete list of all _closed_ issues and pull requests for this release, consult the
16- link:{junit5-repo}+/milestone/37?closed=1+[5.5 RC1] milestone page in the JUnit repository
17+ link:{junit5-repo}+/milestone/34?closed=1+[5.5 M1],
18+ link:{junit5-repo}+/milestone/37?closed=1+[5.5 RC1],
19+ link:{junit5-repo}+/milestone/41?closed=1+[5.5 RC2], and
20+ link:{junit5-repo}+/milestone/40?closed=1+[5.4 GA] milestone pages in the JUnit repository
1721on GitHub.
1822
1923
20- [[release-notes-5.5.0-RC1- junit-platform]]
24+ [[release-notes-5.5.0-junit-platform]]
2125=== JUnit Platform
2226
27+ ==== New Features and Improvements
28+
29+ * Configurable test discovery implementation that can be reused by different test engines
30+ (see Javadoc of the `{junit-platform-engine-support-discovery}` package).
31+ * New `isFinal()` and `isNotFinal()` methods in `ModifierSupport`.
32+
2333==== Bug Fixes
2434
2535* A custom `ClassLoader` created for additional `--class-path` entries passed to the
@@ -37,13 +47,13 @@ on GitHub.
3747 meta-annotations on other repeatable annotations.
3848* New `AnnotationSupport.findRepeatableAnnotations()` variant that accepts a
3949 `java.util.Optional<? extends AnnotatedElement>` argument.
40- * Exceptions thrown by `TestExecutionListeners ` no longer cause test execution to abort.
41- Instead, they will be logged as warnings now.
50+ * An exception thrown by a `TestExecutionListener ` no longer causes test execution to
51+ abort. Instead, such exceptions will be logged as warnings now.
4252* New `MethodSource.from()` variant that accepts `String, String, Class<?>...` as
4353 arguments.
4454
4555
46- [[release-notes-5.5.0-RC1- junit-jupiter]]
56+ [[release-notes-5.5.0-junit-jupiter]]
4757=== JUnit Jupiter
4858
4959==== Bug Fixes
@@ -52,31 +62,46 @@ on GitHub.
5262 an `OutOfMemoryError` if the executables in the dynamic tests retain references to
5363 objects consuming large amounts of memory. Technically speaking, JUnit Jupiter no longer
5464 retains references to instances of `DynamicTest` after they have been executed.
65+ * Extensions registered programmatically using `@RegisterExtension` on fields of test
66+ classes now work correctly for tests in contained `@Nested` test classes. Previously,
67+ such extensions were registered multiple times for each test method in `@Nested` classes.
5568
5669==== Deprecations and Breaking Changes
5770
58- * Script-based condition APIs and their supporting implementations are deprecated with
59- the intent to remove them in JUnit Jupiter 5.6. Users should instead rely on a
60- combination of other built-in conditions or create and use a custom implementation of
61- `ExecutionCondition` to evaluate the same conditions.
71+ * Script-based condition APIs and their supporting implementations are deprecated with the
72+ intent to remove them in JUnit Jupiter 5.6. Users should instead rely on a combination
73+ of other built-in conditions or create and use a custom implementation of
74+ `ExecutionCondition` to support the same conditions.
6275
6376==== New Features and Improvements
6477
6578* Support for declarative timeouts using `@Timeout` or configuration parameters (see
66- <<../user-guide/index.adoc#writing-tests-declarative-timeouts, User Guide>> for details)
79+ <<../user-guide/index.adoc#writing-tests-declarative-timeouts, User Guide>> for details).
80+ * The `JRE` enum used with `@EnabledOnJre` and `@DisabledOnJre` now supports Java 14.
81+ * Expected and actual values are now supplied for failed `boolean` assertions for enhanced
82+ IDE and reporting support -- for example, when `assertTrue()` or `assertFalse()` fails.
6783* New overloaded variants of `Assertions.assertLinesMatch(...)` that accept a `String` or
6884 a `Supplier<String>` for a custom failure message.
6985* Failure messages for `Assertions.assertLinesMatch(...)` now emit each expected and
7086 actual line in a dedicated line.
71- * New Kotlin friendly `assertDoesNotThrow`, `assertTimeout`, and `assertTimeoutPreemptively`
72- assertions have been added as top-level functions in the `org.junit.jupiter.api` package.
87+ * New Kotlin-friendly `assertDoesNotThrow()`, `assertTimeout()`, and
88+ `assertTimeoutPreemptively()` assertions have been added as top-level functions in the
89+ `org.junit.jupiter.api` package.
90+ * Parameterized tests now support implicit conversion from a `String` to the following
91+ `java.time` types: `Duration`, `Period`, `MonthDay`, `ZoneId`, and `ZoneOffset`.
92+ * `@ValueSource` now additionally supports literal values of type `boolean` for
93+ parameterized tests.
7394* New `emptyValue` attribute in `@CsvSource` and `@CsvFileSource`.
7495* Display names for test methods generated by the `ReplaceUnderscores`
7596 `DisplayNameGenerator` no longer include empty parentheses for test methods that do not
7697 declare any parameters.
7798* New `junit.jupiter.displayname.generator.default` configuration parameter to set the
7899 default `DisplayNameGenerator` that will be used unless `@DisplayName` or
79100 `@DisplayNameGeneration` is present.
101+ * New `junit.jupiter.execution.parallel.mode.classes.default` configuration parameter
102+ allows to run top-level classes in parallel but their methods sequentially or vice versa
103+ (see <<../user-guide/index.adoc#writing-tests-parallel-execution, User Guide>> for
104+ details).
80105* `MethodOrderer.Random` now generates a default random seed only once and prints it to
81106 the log in order to allow reproducible builds.
82107* Methods ordered with `MethodOrderer.Random` now execute using the `SAME_THREAD`
@@ -89,24 +114,21 @@ on GitHub.
89114* Private fields annotated with `@RegisterExtension` are no longer silently ignored.
90115 Instead the corresponding test class or test method will now fail with an exception
91116 informing the user of the configuration error.
92- * All methods in the `TestWatcher` API are now interface `default` methods with empty
93- implementations.
94117* New `InvocationInterceptor` extension API (see
95118 <<../user-guide/index.adoc#extensions-intercepting-invocations, User Guide>> for
96119 details).
97120* New `LifecycleMethodExecutionExceptionHandler` extension API for handling exceptions
98121 thrown during the execution of `@BeforeAll`, `@BeforeEach`, `@AfterEach`, and
99122 `@AfterAll` lifecycle methods (see
100123 <<../user-guide/index.adoc#extensions-exception-handling, User Guide>> for details).
124+ * All methods in the `TestWatcher` API are now interface `default` methods with empty
125+ implementations.
101126* A custom test source for a `DynamicContainer` or `DynamicTest` may now be a method URI
102127 -- for example, `method:org.example.MyTestClass#myTestMethod()`.
103- * New `junit.jupiter.execution.parallel.mode.classes.default` configuration parameter
104- allows to run top-level classes in parallel but their methods sequentially or vice versa
105- (see <<../user-guide/index.adoc#writing-tests-parallel-execution, User Guide>> for
106- details).
128+ * A new `getOrDefault()` convenience method has been added to `ExtensionContext.Store`.
107129
108130
109- [[release-notes-5.5.0-RC1- junit-vintage]]
131+ [[release-notes-5.5.0-junit-vintage]]
110132=== JUnit Vintage
111133
112134==== New Features and Improvements
0 commit comments