Differenza tra src / main / java e src / test / java in un progetto Maven


Durante la creazione di un nuovo progetto Maven, vengono create le directory src/main/java e src/test/java. Con alcuni googling, sono venuto a sapere che il mio codice sorgente principale che uso per il test deve essere inserito in src/main/java. Ma allora, qual è lo scopo di due directory separate. La risposta attuale su una domanda simile non ha aiutato molto.

Author: Dheemanth Bhandarkar, 2018-04-24

5 answers

Maven e altri ambienti di gestione delle build (ad esempio gradle) si basano sul presupposto che si eseguano test automatizzati tramite ad esempio test unitari. Per questo è necessario un codice aggiuntivo per i test che non dovrebbe essere incluso nel prodotto finale consegnato al cliente.

Quindi, tutto ciò che va in src/main/java è per impostazione predefinita confezionato nel prodotto che consegneresti per il tuo cliente mentre tutto ciò che metti in src/test/java non lo è.

Questo è un vantaggio per vari motivi:

  • i prodotti consegnati sono più piccoli
  • è più facile trovare il codice testrelated all'interno del tuo progetto
  • è possibile caricare varie librerie solo per il test.
  • ...
 4
Author: lwi, 2018-04-24 07:13:40

Il motivo per cui il codice di test e il codice di produzione (src/main/java) sono separati è che è più facile creare l'applicazione includendo semplicemente il codice di produzione.

 1
Author: Moritz Petersen, 2018-04-24 07:03:45

src/main/java inserisce il codice che utilizza per la produzione reale. src/test/java inserisce il codice del caso d'uso del test, come junit test. Questi codici verrebbero eseguiti quando si eseguono le cose del pacchetto maven. Questi codici non verranno impacchettati nel file war o jar. Il che significa che questi codici non saranno per la produzione reale.

Plus: i codici di test unitari non devono essere imballati in produzione. Non è necessario e non dovrebbe metterli nella cartella src/main/java.

 1
Author: Bejond, 2018-04-24 07:08:51

Secondo le configurazioni Maven, la classe tests si trova nella directory src/test e il codice sorgente si trova nella directory src/main. Quindi src / main / java è la directory principale per il codice sorgente e src/test/java/ è la directory principale per il codice di test.

Ex : Pacchetto hotel, classe di prenotazione

Source Class file :  src/main/java/Hotel/Reservation .java
Test Class file : src/test/java/Hotel/ReservationTest .java
 1
Author: Chamara Maduranga, 2018-09-11 05:18:38

Per rendere i tipi più facili da trovare e utilizzare, per evitare conflitti di denominazione e per controllare l'accesso, i programmatori raggruppano gruppi di tipi correlati in pacchetti. qui

 0
Author: Vinod Bokare, 2018-04-24 07:34:48