Comment définir par défaut le répertoire de travail pour les configurations de lancement de JUnit dans Eclipse?

StackOverflow https://stackoverflow.com/questions/119832

Question

Notre code Java (pas le code de test) lit les fichiers du répertoire actuel, ce qui signifie que le répertoire de travail doit être défini correctement chaque fois que nous exécutons le code.

Lors du lancement d'un test JUnit à partir d'Eclipse, une configuration de lancement est automatiquement créée. Le problème est que le répertoire de travail dans cette configuration de lancement est toujours par défaut le répertoire du projet racine qui est toujours faux, le test échoue, je dois ouvrir la boîte de dialogue de configuration de lancement, modifier le répertoire de travail et relancer le test. C'est très énervant. La même chose se produit lorsque je lance une seule méthode de test.

J'ai déjà pris en compte ces éléments:

  • Modification du répertoire actuel à partir du code de test - impossible par conception.
  • Lors de l'ouverture d'un fichier, transmettez un paramètre de répertoire parent, ce qui est trop difficile, car cela affecterait de nombreux emplacements.
  • Utilisez la fonctionnalité Copier la configuration de lancement d’Eclipse pour créer de nouvelles configurations de lancement à partir de celles qui possèdent déjà un répertoire de travail correct. Cela n’a pas vraiment de sens ici, car je voudrais lancer rapidement un test ou une méthode de test, en appelant simplement "exécuter ce test / cette méthode comme test JUnit".

Dans l’ensemble, c’est comme si c’était la responsabilité d’Eclipse et non du code.

Existe-t-il un moyen de définir le répertoire de travail par défaut pour toutes les futures configurations de lancement JUnit nouvellement créées ?

Était-ce utile?

La solution 2

Autant que je sache, il n’est pas possible de changer le répertoire de travail par défaut pour les futures configurations de lancement de JUnit dans Eclipse 3.4. Ce problème a également été signalé comme un bogue dans la base de données de bogues Eclipse.

Cependant, cela est possible dans IDEA. Le bouton Edit Defaults permet de définir séparément tous les types de valeurs par défaut pour chaque type de configuration de lancement.

Autres conseils

Ceci est une réponse subjective:

Je pense que vous avez mal fait vos tests. Vous ne devriez pas charger les fichiers à partir de JUnit en utilisant des chemins d'accès relatifs ou complets, mais les placer en tant que ressources dans le projet (ajoutez-les au chemin de génération) et chargez-les. en tant que ressources dans les tests JUnit. Ainsi, si quelque chose change sur le système de fichiers, si quelqu'un utilise un système de fichiers ou un IDE différent mais qu'il les a toujours dans le chemin de construction (en tant que dossiers sources), vous ne rencontrerez aucun problème.

Je ne sais pas si c'est ce que vous voulez dire, mais si vous voulez vraiment le changer, allez dans les options Exécuter la configuration - > Votre JUnit - > Dans l'onglet Arguments, en bas (Eclipse 3.4), vous voyez le répertoire de travail, cliquez sur "autre" et modifiez-le à partir de cet emplacement.

Avec Eclipse 3, vous pouvez définir votre répertoire de travail. Allez à vous exécuter / configuration de débogage - > Onglet Arguments. Dans le répertoire de travail, sélectionnez " other " et entrez la racine de votre test

Je n'ai pas trouvé la possibilité de le faire, mais vous pouvez utiliser:

getClass (). getResourceAsStream (nom du fichier);

getClass (). getClassLoader (). getResourceAsStream (nom du fichier);

Cette méthode localise une ressource sur le chemin de classe. Le premier est relatif à l'emplacement de la classe, le second est relatif à n'importe quel chemin de classe "entrée racine". Vous pouvez ensuite par exemple ajouter le répertoire racine du projet au chemin de classe.

Toutefois, cela ne fonctionne pas si vous souhaitez également écrire dans un fichier.

Si vos tests dépendent du répertoire de travail en cours, je pense qu'il est de la responsabilité de vos tests de configurer correctement ce répertoire de travail et de configurer vos classes à tester pour qu'elles pointent vers ce répertoire.

Si vous avez une super-classe pour la plupart de vos tests, écrivez-y une constante. Ou bien: si vous avez une super-classe pour la plupart de vos tests, écrivez une méthode de configuration @Avant. Ou bien, si vous n’avez pas de super-classe pour la plupart de vos tests, écrivez une constante dans une classe de la base de code testing.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top