Eclipse, junit test dans le même projet
Ce qui est relativement question ouverte. Si j'ai créé une application dans un projet dans Eclipse et je veux tester ce projet, dois-je créer le JUnit code dans le même projet ou créer un projet distinct. Par exemple...
ShopSystem
peut-être le nom de mon projet principal - dois-je créer un projet appelé à dire, ShopSystemTest
?
En général - comment "loin" si les tests de code de l'enregistrer dans le dossier de projet principal? Si je stocke le code de test dans le projet principal, puis exporter le projet principal comme un runnable jar il faudra le code de test, ce qui n'est pas idéal...
Suggestions?
Vous devez vous connecter pour publier un commentaire.
Alors qu'il n'y a pas seulement le droit chemin, la démarche habituelle est de garder les tests unitaires dans le même projet.
Vous pouvez créer un deuxième dossier source (comme
test
), où vous mettez vos classes de test dans les mêmes paquets que les classes de test. Cela permet également de tester colis-privé, tandis que les classes ne pas inonder votre principale source de packages avec des classes de test.Votre dossier source/la structure du package ressemblerait alors à ceci:
Vous pouvez ensuite configurer votre build de ne pas inclure le
test
dossier source lors de l'emballage du POT.J'aime le maven convention de beaucoup de choses: Il y a une source distincte de l'arbre principal et de test dans le même projet, le code principal est déployé, le code de test n'a pas. Package structures peuvent être (mais n'ont pas à être) identiques.
Et dans eclipse, lorsque vous choisissez
new -> JUnit test case
, il suffit de changer le dossier source dans src/test/java et de laisser le paquet suggéré que est.(L'un des avantages de rester dans le même paquet est d'avoir accès aux protégés de package et de l'étendue de membres, mais ce n'est pas " bon " test de l'unité de comportement)
Mise à jour: Voici un peu de code pour illustrer mon dernier point:
Classe principale (dans src/main/java):
De la classe de Test (dans src/test/java):
protected
permis l'accès à d'autres classes du même package. Ok, ça efface les choses, merci.final
par défaut pour les classes, les variables locales et peut-être même des membres. Oh bien.Généralement vous ont -
Considérer le maven : Dans un projet maven, soruces sont organisées de cette façon
Votre code source va dans src/main/java, votre junit test code va dans src/test/java, ils sont la source de dossier (et, en conséquence vous pouvez mettre votre jUnit code dans le même package que votre code Java, mais dans un autre dossier source).
L'intérêt est que pour habitude de codage, votre jUnit classes sont dans les paquets de code, mais sur le pot de création, vous pouvez prendre des cours à venir seulement de la src/main/java et relâchez pas vos tests.