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.
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
.
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.
Ensuite, dans vos lancements JUnit, sous l'ongletJRE, sélectionnez la définition de JRE que vous avez créée.