Skip to content

Commit 8d85570

Browse files
committed
Add Java 9 compatibility section
1 parent 9406e44 commit 8d85570

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

documentation/src/docs/asciidoc/release-notes-5.0.0-M6.adoc

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,37 @@ For a complete list of all _closed_ issues and pull requests for this release, c
1414
link:{junit5-repo}+/milestone/11?closed=1+[5.0 M6] milestone page in the JUnit repository
1515
on GitHub.
1616

17+
==== Java 9 compatibility
18+
19+
The main target of JUnit is Java 8. Therefore, it won't ship with compiled module
20+
descriptors. However, since <<release-notes-5.0.0-m5,milestone M5>> each artifact
21+
published by JUnit 5 ships with a stable automatic module name declared in the
22+
JAR manifest. That allows test module authors to require well-known JUnit module
23+
names, like:
24+
25+
```
26+
module foo.bar {
27+
requires org.junit.jupiter.api;
28+
}
29+
```
30+
31+
Usually it's sufficient to run tests on the class-path. There's no change between
32+
Java 8 and 9. All command line based tools and IDEs continue to work with JUnit 5
33+
_out-of-the-box_ -- if they support the JUnit Platform. If your tool of choice
34+
does not support JUnit 5 yet, you may always resort to the `ConsoleLauncher` or
35+
even to the executable `junit-platform-console-standalone` all-in-one jar.
36+
37+
Running JUnit Jupiter tests on the module path is implemented by *pro*, a Java 9
38+
compatible build tool. It's available at https://github.com/forax/pro
39+
40+
*pro* supports black-box and white-box testing. The former is used by module
41+
surface tests that only access the exported bits of the application modules.
42+
The latter is using a module descriptor merge-technique allowing access to
43+
`protected` and package-private types as well as not exported packages.
44+
45+
See https://github.com/forax/pro/tree/master/src/test/java for test module
46+
examples: `integration.pro` is a black-box module, `com.github.forax.pro.api`
47+
and `com.github.forax.pro.helper` are white-box test modules.
1748

1849
[[release-notes-5.0.0-m6-junit-platform]]
1950
==== JUnit Platform

0 commit comments

Comments
 (0)