spring - @ContextConfiguration не может загрузить файл конфигурации в src / test / resources - PullRequest
25 голосов
/ 09 апреля 2010

Я попытался загрузить конфигурационный файл Spring в classpath src / test / resources со следующим абстрактным классом:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {

}

У меня есть файл applicationContext.xml в src / test / resources, но Spring не может загрузить его.

Спасибо.

Ответы [ 7 ]

25 голосов
/ 09 апреля 2010

Если быть точным, то содержимое каталога теста (target/test-classes) находится в пути к классам, а не src/test/resources. Но ресурсы в src/test/resources копируются в каталог вывода теста с помощью цели resources:testResources (которая по умолчанию связана с process-test-resources фаза).

С учетом вышесказанного ваш код выглядит нормально, а ресурсы для исходного кода теста должны были быть скопированы либо вашей IDE, либо Maven при выполнении тестов и, следовательно, должны быть доступны в пути к классам. Так что должно быть что-то еще не так. Я вижу, что ваш класс является базовым классом для интеграционных тестов. Вы настроили что-нибудь необычное в вашем помпе? Вы можете показать это?

16 голосов
/ 04 июля 2013

Попробуйте с помощью *, чтобы он мог искать по вашему classpath

@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
5 голосов
/ 21 мая 2010

Существует сообщение об ошибке с использованием зависимости весеннего теста (включая SpringJUnit4ClassRunner) с версиями JUnit> 4.4.

Если вы используете версию JUnit новее, чем 4.4, попробуйте переместить ее на 4.4 и посмотрите, решит ли она вашу проблему.

4 голосов
/ 14 мая 2014

контекст вашего приложения должен быть включен в classpath и помещен *:

@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
1 голос
/ 09 апреля 2010

Вы, похоже, используете maven и пытаетесь запустить тесты из затмения. Проверьте папку сборки (target/test-classes/) на applicationContext.xml. Если его там нет, вам придется сначала построить.

0 голосов
/ 01 июня 2017

Если вы используете Maven и запускаете тестовые примеры из Eclipse, щелкните правой кнопкой мыши проект> Maven> обновление maven ( ALT F5 ) может работать для вас.

0 голосов
/ 15 ноября 2010

Я думаю, у меня есть проблема с симилларом, Я обнаружил, что мой application-context.xml не находится в target / test-classes / neighter на src / test / resources

...