Classpath de la difficulté à utiliser JUnit à la fois avec Eclipse et Maven
Dans un test JUnit je suis en utilisant ce code à charger dans un test spécifique fichier de config:
InputStream configFile = getClass().getResourceAsStream("config.xml");
Quand je lance le test par le biais d'eclipse, il nécessite le fichier xml pour être dans le même répertoire que le fichier de test.
Quand je construire le projet avec maven, il exige que le xml pour être en src/test/resources
, de sorte qu'il est copié dans target/test-classes
.
Comment puis-je faire à la fois travailler avec un seul fichier?
OriginalL'auteur Steve | 2010-05-19
Vous devez vous connecter pour publier un commentaire.
Lieu le config.xml fichier dans src/test/resources, et ajouter de la src/test/resources comme un dossier source dans Eclipse.
L'autre question est de savoir comment
getResourceAsStream("config.xml")
travaille avec des paquets. Si la classe qui appelle c'est dans lecom.mycompany.whatever
paquet, puisgetResourceAsStream
attendent également config.xml dans le même chemin. Cependant, c'est le même chemin dans le classpath pas le système de fichiers. Vous pouvez placer le fichier dans la même structure de répertoire src/test/resources - src/test/resources/com/mycompany/whatever/config.xml - ou vous pouvez ajouter un "/" pour le chemin - ce qui rend lagetResourceAsStream
charger le fichier de la base de la classpath - donc, si vous la changez pourgetResourceAsStream("/config.xml")
vous pouvez juste mettre le fichier dans src/test/resources/config.xmlOriginalL'auteur Nate
Essayez d'ajouter le
src/test/resources/
répertoire d'un dossier source de votre projet Eclipse. De cette façon, il doit être dans le classpath lors de l'Éclipse tente d'exécuter votre test unitaire.OriginalL'auteur Ophidian
Je sais que c'est une vieille question, mais je suis tombé sur elle et l'a trouvé bizarre qu'aucune des réponses ci-dessus, la mention de l'Maven Plugin Eclipse. Exécuter
mvn eclipse:eclipse
et il va ajouter src/main/resources et src/test/resources et ces à la "Java Build Path" dans Eclipse pour vous.Il a un tas de trucs que vous pouvez configurer à partir de là aussi (si vous avez besoin de s'écarter des conventions, si vous ne le faites pas alors qu'il est déjà prêt à partir):
En général, si vous utilisez Maven, ne pas modifier manuellement des trucs dans Eclipse. Ne jamais s'engager dans votre .classpath/.projet et, au lieu de simplement utiliser le Maven Plugin Eclipse pour générer ces fichiers (et ou les mettre à jour). De cette manière vous avez UNE source de configuration de votre projet, MAVEN, et pas des réglages manuels que vous finissez par avoir à le dire aux autres à mémoriser et à utiliser vous-même et ainsi de suite. Si c'est un projet Maven: check it out de contrôle de code source, exécutez "mvn eclipse:eclipse" et il faut travailler dans Eclipse, si ce n'est pas votre POM besoin de travail.
OriginalL'auteur Charlie Collins
si vous avez besoin juste à temps de test, vous pouvez le charger via le système de fichiers, le contexte ici doit être le même pour les deux cas:
pas assez, mais il fonctionne
OriginalL'auteur Sean Patrick Floyd