web-dev-qa-db-fra.com

Spécification d'un fichier log4j.properties personnalisé for all the tests JUnit exécutés à partir d'Eclipse

Je souhaite spécifier un VM argument Eclipse spécifique à tous les tests JUnit que je lance à partir d’Eclipse i.e.

-Dlog4j.configuration=log4j-dev.properties

En effet, je souhaite que tous mes tests JUnit prennent un fichier de configuration log4j spécifique au lieu du fichier log4j.properties par défaut.

A partir de maintenant, je dois spécifier le VM argument ci-dessus (dans Run Configurations -> Arguments -> VM arguments) pour chacun de mes tests JUnit, ce qui le rend fastidieux, car j'ai de nombreux tests.

14
balteo

Vous n'avez pas besoin de donner à la machine virtuelle Java un nom de propriété différent. Le code de journalisation recherche le fichier log4j.properties à l'aide du chemin de classe. Il vous suffit donc de vous assurer que votre fichier test log4j.properties se trouve à un emplacement dans lequel il trouvera before le fichier de version.

J'utilise Maven, qui dispose des fichiers dans des répertoires pour faciliter les choses. Ma version log4j.properties se trouve dans le répertoire src/main/resources. Ma version de test va dans src/test/resources. Le chemin de construction Eclipse (classpath) est configuré pour rechercher src/test/resources avant src/main/resources, de sorte que vos tests unitaires utilisent le fichier de test. Les instructions de construction JAR (ou WAR) utilisent les fichiers de src/main/resources.

31
Raedwald

Eclipse vous permet de définir les arguments par défaut VM appliqués à tout lancement utilisant cette machine virtuelle. Vous pouvez l'utiliser dans votre cas en définissant une configuration JRE avec l'argument VM que vous voulez pour log4j, puis en configurant tous les lancements JUnit pour qu'ils utilisent cette définition JRE.

Dans Préférences, Java > JRE installés et utilisez le bouton Ajouter ... pour définir un JRE. Dans la boîte de dialogue JRE Definition , il existe un champ pour Par défaut VM arguments . Donnez à cette définition JRE un nom utile tel que "JDK 7 for JUnit" afin de pouvoir l'identifier facilement.

enter image description here

Ensuite, dans vos lancements JUnit, sous l'ongletJRE, sélectionnez la définition de JRE que vous avez créée.

enter image description here

1
E-Riz