@@ -14,6 +14,37 @@ For a complete list of all _closed_ issues and pull requests for this release, c
1414link:{junit5-repo}+/milestone/11?closed=1+[5.0 M6] milestone page in the JUnit repository
1515on 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