Java/Eclipse: Comment faire pour configurer la Configuration du chemin de classe de test JUnit?
J'ai un projet Eclipse avec la structure de répertoire suivante:
MyProj/
src/main/java/
com.me.myproject.widgets
Widget.java
src/main/config
widget-config.xml
src/test/java
com.me.myproject.widgets
WidgetTest.java
src/test/config
widget-test-config.xml
La Widget
classe lit sa configuration (XML) de fichiers à partir de n'importe où sur le chemin de la classe et l'utilise pour configurer ses propriétés.
Je suis en train d'essayer de s'en WidgetTest
's des cas de test (tous écrits avec JUnit) à exécuter à l'intérieur de l'Éclipse quand je clic droit sur le fichier et allez à Run As >> JUnit Test
. Je suppose que je vais effectivement courir comme une mesure Configuration d'Exécution avec ses propres configuré classpath, mais je ne suis pas sûr que, comme je n'ai jamais fait cela avant.
Quelqu'un sait comment je peux obtenir une mesure d'Exécuter Configuration pour exécuter WidgetTest.java
comme un test Unitaire, et de placer correctement les src/test/config/widget-test-config.xml
sur le chemin de la classe? Merci à l'avance!
Veuillez noter que cette question est pas sur la façon de lire une ressource à partir de l'exécution de chemin de classe, son sujet de la façon de l'obtenir sur Eclipse est JUnit Exécuter Config chemin de classe à la première place!
Vous devez vous connecter pour publier un commentaire.
J'étais sous l'impression que tant que vous avez
src/test/config/widget-test-config.xml
à l'intérieur de ce Éclipse considère être une source de dossier, il devrait déjà être sur le chemin de la classe.Est src/test d'un dossier source pour Eclipse ? Si il l'est et vous obtenez toujours le problème, essayez l'expérience suivante :
Si vous copiez widget-test-config.xml à la src de la racine peuvent Widget de la classe de lire ?
Si Oui
alors c'est un problème de dossier de test n'étant pas sur le chemin de la classe, et vous pourriez veux essayer de l'ajouter manuellement comme si.
Clic droit WidgetTest et sélectionnez
Run As -> Junit Test
. Cela devrait créer automatiquement un Junit Exécuter Configuration accessible àRun -> Run Configurations
. Vous modifier le Classpath de l'entrée pour ajouter le projet contenant la .fichier xml comme suit :Si Aucune
Si, même après le déplacement de l' .fichier xml à la src de la racine (c'est à dire de package par défaut), votre classe de widget ne peut pas le lire, puis il y a autre chose de mal. Dans ce cas, il serait grand si vous pourriez fournir à l'extrait de code dans WidgetTest qui est d'essayer de lire le .fichier xml.
Code De Travail
Voici un peu de code de travail :
Ci-dessus fonctionne pour moi dans un simple projet en JAVA et fonctionne très bien. (En cours d'exécution fine signifie obtenir
le "vrai" imprimé sur la console)
Je suis dans le processus de création d'un dépôt GITHub pour vous d'essayer ce code sans douleur.
GIT Hub Repo avec projet de Test
Vous devriez être en mesure d'importer le projet dans cette zip et voir le code de travail. Cliquez du bouton droit sur la classe de Test
A
et cliquez surRun As -> Junit Test
, et vous devriez voir deuxtrue
dans la Console.Widget
constructeur prend unString
qui doit être une URL pour le fichier de configuration XML à charger. DansWidgetTest
je me suis créer unWidget
comme suit:Widget w = new Widget("classpath:/widget-test-config.xml");
. On m'a ditclasspath
est un Java, le protocole de la JRE à comprendre, mais peut-être mon problème ici?getResourceAsStream()
méthode de travail sur les fichiers uniquement, ou peut-il aussi travailler avec des répertoires entiers?Si votre WidgetTest classe est écrite comme un test JUnit, eclipse va essayer de l'exécuter comme un test Junit automatiquement. Si cela ne fonctionne pas, vous devez cliquer droit sur la classe dans l'explorateur de packages, sélectionnez Exécuter en tant Qu' >> Exécuter Configuration >> choisissez Junit
Pour exécuter un test Junit:
dans JUnit3, la classe doit implémenter cas de test et tous les noms de méthode doit commencer "test"
dans JUnit4, toutes les méthodes doivent être précédées par une annotation @Test
Placer ce fichier de config dans le classpath: lors du réglage de la Configuration d'Exécution comme ci-dessus, allez à l'onglet Arguments dans le panneau en haut à droite et dans la VM arguments spécifier le chemin de la classe:
Toutefois, si le fichier est dans un package dans le répertoire source, il doit être automatiquement inclus dans le classpath.
C:/Users/myUser/Desktop/workspace/MyProject/src/test/config/widget-test-config.xml
, alors que dois-je-cp
argument ressemble? Merci encore pour toute l'aide!