Указание собственного файла log4j.properties для всех тестов JUnit, выполняемых с Eclipse
Я хотел бы указать конкретный Eclipse VM argument
для всех тестов JUnit, которые я запускаю из Eclipse i.e.
-Dlog4j.configuration=log4j-dev.properties
Это связано с тем, что я хочу, чтобы определенный файл конфигурации log4j был выбран всеми моими тестами JUnit вместо файла log4j.properties
по умолчанию.
На данный момент я должен указать выше VM argument
(in Run Configurations -> Arguments -> VM arguments
) для каждого из моих тестов JUnit, что делает его громоздким, потому что у меня много тестов.
Ответы
Ответ 1
Вам не нужно указывать JVM другое имя свойства. Код регистрации выполняет поиск файла log4j.properties
с помощью пути к классам. Таким образом, все, что вам нужно сделать, это убедиться, что ваш тестовый файл log4j.properties
находится в том месте, которое оно найдет перед файлом релиза.
Я использую Maven, который издает файлы в каталогах, чтобы сделать это легко. Мой выпуск log4j.properties
отправляется в каталог src/main/resources
. Моя тестовая версия находится в src/test/resources
. Путь сборки Eclipse (путь к классам) настроен на поиск src/test/resources
до src/main/resources
, поэтому ваши модульные тесты используют тестовый файл. Инструкции сборки JAR (или WAR) используют файлы из src/main/resources
.
Ответ 2
Eclipse дает вам возможность определять аргументы VM по умолчанию, которые применяются к любому запуску, который использует эту виртуальную машину. Вы можете использовать это в своей ситуации, определив конфигурацию JRE с аргументом VM, который вы хотите для log4j, а затем настройте все запуски JUnit для использования этого определения JRE.
В настройках Java > Установленные JRE и используйте кнопку Добавить..., чтобы определить JRE. В диалоговом окне JRE Определение имеется поле для аргументов VM по умолчанию. Дайте этому определению JRE полезное имя, например "JDK 7 для JUnit", чтобы вы могли легко идентифицировать его.
![enter image description here]()
Затем в вашем запуске JUnit на вкладке JRE выберите созданное вами определение JRE.
![enter image description here]()