Используя i18n ресурсы из WEB-INF в Junit test

Кажется, я столкнулся с ошибкой в настройках 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.

5
задан chzbrgla 5 September 2011 в 15:55
поделиться