2015-04-20 7 views
0

При написании модульных тестов для приложения обычно создаю копии некоторых конфигураций, которые находятся в оригинале main/resources, и изменяйте их для целей тестирования, но я оставляю имена одинаковыми. Однако Junit иногда берет одно в src, а иногда и в test/resources.Junit использовать правильные ресурсы

Как мы можем управлять тем, который он выбирает, не переименовывая файлы?

К примеру у меня есть некоторые «config.json», который находится в обоих испытаний и ресурсов основных, то как же JUnit выбрать один, чтобы выбрать при выполнении теста ...

+0

Я боюсь, что это слишком широко, чтобы ответить. Некоторые советы: Ресурсы в 'src/main/resources' попадут в сгенерированный JAR. Это также означает, что они не могут быть изменены. Как следствие, это не правильное место для сменных файлов конфигурации. Он должен содержать только _static_ ресурсы для вашей программы/библиотеки (например: изображения). То же самое относится к 'src/test/resources'. Здесь вы должны размещать файлы ресурсов только для своих тестов. Файлы конфигурации должны быть в другом месте. Обычно мы загружаем их через системные свойства. – Seelenvirtuose

+0

Что ж, как насчет log4j.config или весеннего контекста xmls? вы держите их? – vach

+0

Не существует ли какой-либо возможности заставить junit выбрать один в тестовой вилке, если 2 файла доступны с тем же именем? Простая функция, подобная этой, может решить так много проблем ... – vach

ответ

1

Хорошо, просто быстрый ответ:

Вы не можете исключить ресурсы из: src/main/resources. Они всегда находятся внутри вашего пути к классу, и поэтому они являются частью вашей программы/библиотеки.

Но вам не обязательно это делать.

Log4j2, например, позволяет иметь именованный конфигурационный файл в пути к классу (при выполнении тестов). Просто назовите его log4j2-test.xml и он будет загружен до файла без проверки.

Весна ведет себя одинаково при аннотации тестовых классов с помощью @ContextConfiguration.

Смежные вопросы