Заставьте Eclipse использовать src / test / resources вместо src / main / resources - PullRequest
8 голосов
/ 26 мая 2010

Я пишу небольшое приложение Maven в Eclipse. Я храню некоторые файлы свойств и контекст моего приложения в каталоге src / main / resources.

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

Вы знаете, как я мог это сделать?

Ответы [ 3 ]

9 голосов
/ 26 мая 2010

Попробуйте это:

  1. Перейти к «Выполнить-> Выполнить настройки ...» (в случае отладки «Выполнить-> Отладить конфигурации ...»)
  2. Конфигурация Open Run (Debug), которую вы используете
  3. Открыть вкладку "Classpath"
  4. Выберите «Записи пользователя» и нажмите «Дополнительно ...» справа
  5. В открывшемся окне выберите «Добавить папку», укажите ваш src / test / resources
  6. Эта папка появится в разделе «Записи пользователя», затем вы должны переместить ее вверх, чтобы она стала первой в вашем пути к классам
5 голосов
/ 26 мая 2010

Используете ли вы Maven Eclipse Plugin или m2eclipse , src/test/resources предшествует src/main/resources на пути к классам (точнее, их выходным каталогам). Другими словами, ничего не поделаешь, все работает как в командной строке.

3 голосов
/ 12 декабря 2011

Использовать переопределение теста (например, testOverrides.xml):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!--  this file need to be imported before other contexts to ensure the test properties take effect -->

    <context:property-placeholder location="classpath*:META-INF/spring/testproperties/*.properties"/>

</beans>

В своих тестах сначала убедитесь, что он импортирован:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:META-INF/spring/testOverrides.xml","classpath*:META-INF/spring/applicationContext.xml"})
public class SomeTest { ... }

Теперь поместите все свои тестовые свойства в src/test/resources/META-INF/spring/testproperties/.

Вы также должны убедиться, что конфигуратор заполнителя main никогда не видит testproperties, например вот мой:

<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/>

Он не использует двойной символ *, поэтому он будет смотреть только на этот каталог.

Я использую описанный выше метод с большим успехом.

...