Кажется, я столкнулся с ошибкой в настройках classpath.
Я хочу протестировать интернационализированное web-приложение, в котором источник сообщений определен следующим образом:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/i18n/errors</value>
<value>/WEB-INF/i18n/messages</value>
<value>/WEB-INF/i18n/links</value>
<value>/WEB-INF/i18n/forms</value>
<value>/WEB-INF/i18n/communication</value>
</list>
</property>
</bean>
Загрузка этих значений прекрасно работает в производственной среде. Однако при запуске Junit Test он не может разрешить эти файлы свойств, потому что они не находятся в classpath.
Однако, я хочу, чтобы они НЕ находились в classpath, потому что тогда я смогу воспользоваться возможностью, где я смогу что-то изменить в файлах свойств, и это сразу же отразится на сайте: Поскольку серверы приложений обычно кэшируют все файлы, загруженные из classpath, необходимо хранить ресурсы где-нибудь еще (например, в каталоге "WEB-INF" веб-приложения). В противном случае изменения файлов в classpath не будут отражены в приложении.
Там находится весеннее приложениеКонтекст: /src/main/resources/spring/applicationContext.xml
.
и загрузил в Junit тест с этими аннотациями:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"})
Как я могу заставить Junit забрать и эти не-классовые ресурсы?
Файлы свойств находятся на /src/main/webapp/WEB-INF/i18n/*
Junit: 4.7.
Весна: 3.0.5.