{"componentChunkName":"component---src-templates-talk-js","path":"/talks/modular-testing/","result":{"data":{"markdownRemark":{"id":"bf3af2e7-4a3a-569e-967d-5528dac7e84b","htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The Java Platform Module System (JPMS) introduced with Java 9 poses new challenges when it comes to organizing and executing automated software tests.\nFinding tests and executing them via the reflection API is still possible but needs some extra configuration.\nJUnit 5 supports scanning for tests in modules since 5.1 and has "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/junit-team/junit5-samples/tree/master/junit5-modular-world"},"children":[{"type":"text","value":"a sample project"}]},{"type":"text","value":" that demonstrates three possible approaches."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"The talk starts with a basic introduction to JUnit 5 and the Java module system before presenting the three approaches for executing tests when using the JPMS from the command line:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Resorting to the class path"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Patching test binaries into main modules at runtime"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Patching main sources into test modules at compile time"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"It closes with an outlook:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"Are there variations or other approaches?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"How do build tools support you?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"What are best practices in IDEs?"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Happy modular testing!"}]}],"data":{"quirksMode":false}},"fields":{"path":"/talks/modular-testing/"},"frontmatter":{"title":"Testing in the Modular World","excerpt":"Explore the challenges Java's module system poses for organizing and executing tests.","card":"modular-testing.jpg","language":null,"slides":{"pdf":null,"url":"https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world.html"},"video":null,"speakers":[{"id":"9b7144a7-17f1-5241-a513-0ee352bbf624","fields":{"path":"/speakers/christian-stein/"},"frontmatter":{"name":"Christian Stein","slug":"christian-stein","bio":"Open source developer working on JUnit, Apache Maven, and sometimes OpenJDK","social":{"site":"https://sormuras.github.io/","twitter":"sormuras"}}}]}}},"pageContext":{"slug":"modular-testing"}}}