I am creating a modular build (using module-info.java) on GitHub, but when adding a module-info.java to the modules that I want modular, no tests can be executed...
How can I achieve this?
I am using the following versions:
- junit.jupiter version 5.3.0 (first take was also unsuccessful with version 5.2.0)
- maven-compiler-plugin version 3.8.0 (first take was also unsuccessful with version 3.7.0)
- maven-surefire-plugin version 2.22.0 (first take was also unsuccessful with version 2.21.0)
A typical error from the failing tests looks like:
java.lang.reflect.InaccessibleObjectException: Unable to make com.github.jactor.rises.commons.dto.UserDtoTest() accessible: module jactor.rises.commons does not "opens com.github.jactor.rises.commons.dto" to unnamed module @65e98b1c
Welcome to Testing In The Modular World!
Which kind of tests do you want write?
Black-box tests: Create a test-only project (no "src/main" directory) and declare a "src/test/java/module-info.java" module descriptor.
White-box tests: As it was from Day 1 you need to "blend in"/merge/shadow your test classes into your main classes or vice versa. Here you have mainly two ways to achieve this:
Blog
https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world
Examples
Work-in-progress blueprint https://github.com/sormuras/sandbox/tree/master/sors-modular-testing-blueprint
Integration tests starting with "modular-world-" at https://github.com/sormuras/junit-platform-maven-plugin/tree/master/src/it
Background and other resources