Для некоторых тестов мне нужно использовать prod-context и test-context. Но Spring не может найти мой контекст.
Я пытался поместить контекст в другое место, а также пытался загрузить контекст с помощью различных загрузчиков.
У меня есть контекст в пути к классам ресурсов.
Entities-src-test-java-Dao-test1
-resources-META-INF-spring
Мой полный путь
C:\Git\Application\Entities\src\test\resources\META-INF\spring
Когда я пытаюсь, например
public class test1{
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("test-beans.xml");
...
или
@ContextConfiguration("file:/C://Git/Application/Entities/src/test/resources/META-INF/spring/test-beans.xml")
public class test1{
...
Или другие разные... У меня ошибка
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [test-beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [test-beans.xml] cannot be opened because it does not exist
Если я запущу этот класс в отладчике и проверю
System.getProperty("user.dir") посмотрю C:\Git\Application или new File(".").getAbsolutePath(); покажет мне C:\Git\Application\.
Как это решить?




Что ж, не так уж хорошо, чтобы расположение файла конфигурации зависело от пути к файлу. Вы уверены, что другой товарищ по команде также поместит исходные коды проекта в папку C:\Git\Application\Entities? Если нет, ваш товарищ по команде, скорее всего, не сможет запустить ваш тестовый пример из коробки, не говоря уже о сервере сборки.
Вместо этого вы можете попытаться сослаться на файл конфигурации, используя путь к классам, чтобы предотвратить такие проблемы с файлами:
@ContextConfiguration("classpath:spring/test-beans.xml")
public class Test{
}
И поместите test-beans.xml в папку C:\Git\Application\Entities\src\test\resources\spring
Спасибо. Мне это помогло... Но почему, я не понимаю ) И везде я использовал путь к файлу, чтобы попытаться загрузить контекст хоть куда-то )
Путь для
@ContextConfigurationдолжен бытьclasspath:/META-INF/spring/test-beans.xml.