How do you organize tests in a modular Java project?

Welcome to Testing In The Modular World!

Which kind of tests do you want write?

Extra-module tests: Create a test-only project (no “src/main” directory) and declare a “src/test/java/module-info.java” module descriptor.

In-module 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:

  • “compile modular main sources” and “patch plain test sources” at test-runtime with some additional “JVM options hacking the Module system” to execute tests.
  • “compile modular test sources” and “patch modular main sources” at compile-time to execute tests.

Blog

https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world

Examples

Background and other resources

Leave a Comment