Différence entre la src/main/java et src/test/java dans un projet Maven


Lors de la création d'un nouveau projet Maven, les répertoires src/main/java et src/test/java sont créés. Avec quelques recherches sur Google, j'ai appris que mon code source principal que j'utilise pour les tests doit être placé dans src/main/java. Mais alors, quel est le but de deux répertoires distincts. La réponse actuelle à une question similaire n'a pas beaucoup aidé.

Author: Dheemanth Bhandarkar, 2018-04-24

5 answers

Maven et d'autres environnements de gestion de build (par exemple gradle) sont basés sur l'hypothèse que vous effectuez des tests automatisés via, par exemple, des tests unitaires. Pour cela, vous avez besoin d'un code supplémentaire pour les tests qui ne devrait pas être inclus dans votre produit final livré à votre client.

Ainsi, tout ce qui entre dans src/main/java est par défaut emballé dans le produit que vous livreriez à votre client alors que tout ce que vous mettez dans src/test/java ne l'est pas.

Ceci est un avantage pour divers raisons:

  • vos produits livrés sont plus petits
  • il est plus facile de trouver du code testrelated dans votre projet
  • vous pouvez charger différentes bibliothèques uniquement pour les tests.
  • ...
 4
Author: lwi, 2018-04-24 07:13:40

La raison pour laquelle le code de test et le code de production (src/main/java) sont séparés est qu'il est plus facile de construire l'application en incluant simplement le code de production.

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

src/main/java place votre code qui utilise pour la production réelle. src/test/java place votre code de cas d'utilisation de test, comme junit test. Ces codes seraient exécutés lors de l'exécution des choses du package maven. Ces codes ne seront pas empaquetés dans votre fichier war ou jar. Ce qui signifie que ces codes ne seront pas pour la production réelle.

Plus: Les codes de test unitaires ne doivent pas être emballés en production. Vous n'avez pas besoin et ne devriez pas les mettre dans le dossier src/main/java.

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

Selon les configurations Maven, la classe tests se trouve dans le répertoire src/test et le code source se trouve dans le répertoire src/main. Donc src/main/java est le répertoire racine de votre code source et src/test/java/ est le répertoire racine de votre code de test.

Ex : Forfait hôtel, Classe de réservation

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

Pour faciliter la recherche et l'utilisation des types, pour éviter les conflits de nommage et pour contrôler l'accès, les programmeurs regroupent des groupes de types associés dans des paquets.ici

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