Come si organizzano i test in un progetto Java modulare?
Sto creando una build modulare (usando module-info.java) su GitHub , ma quando si aggiunge un modulo-info.java ai moduli che voglio modulari, nessun test può essere eseguito...
Come posso raggiungere questo obiettivo?
Sto usando le seguenti versioni:
- junit.jupiter versione 5.3.0 (anche la prima ripresa non ha avuto successo con la versione 5.2.0)
- maven-compiler-plugin versione 3.8.0 (anche il primo take non ha avuto successo con la versione 3.7.0)
Un errore tipico dei test falliti è simile a:
Java.lang.riflettere.InaccessibleObjectException: Impossibile fare com.github.jactor.sorgere.comune.dto.UserDtoTest () accessibile: modulo jactor.sorgere.commons non " apre com.github.jactor.sorgere.comune.dto " al modulo senza nome @65e98b1c
1 answers
Benvenuti a Test nel mondo modulare !
Che tipo di test vuoi scrivere?
Test black-box: Creare un progetto di solo test (nessuna directory "src/main") e dichiarare un "src/test/java/module-info.java" modulo descrittore.
Test white-box: Come è stato dal giorno 1 è necessario "fondersi"/unire/ombreggiare le classi di test nelle classi principali o viceversa. Qui hai principalmente due modi per raggiungere questo obiettivo:
- "compila modulare sorgenti principali " e "patch plain test sources" al test-runtime con alcune "opzioni JVM aggiuntive che hackerano il sistema dei moduli" per eseguire i test.
- "compila sorgenti di test modulari" e "patch sorgenti principali modulari" in fase di compilazione per eseguire i test.
Blog
Https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world
Esempi
Progetto di lavoro in corso https://github.com/sormuras/sandbox/tree/master/sors-modular-testing-blueprint
Test di integrazione che iniziano con "modular-world -" at https://github.com/sormuras/junit-platform-maven-plugin/tree/master/src/it