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)
  • -il sito ufficiale versione 2.22.0 (anche il primo take non ha avuto successo con la versione 2.21.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

Author: jactor-rises, 2018-08-31

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

Background e altri risorse

 3
Author: Sormuras, 2018-09-12 07:34:48