как заставить maven использовать тестовые ресурсы - PullRequest
14 голосов
/ 07 июня 2011

когда я использую команду: mvn test, maven использует основные ресурсы вместо тестовых в src / test / resources.

Как я могу заставить maven использовать тестовые ресурсы, а не основные ресурсы?

РЕДАКТИРОВАТЬ: я использую Classloader, чтобы найти свои ресурсы.Classloader может найти ресурсы из моего каталога src / test / resources, но сначала он ищет ресурс в src / main / java.

ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream file =loader.getResourceAsStream("resource.xml");

Или есть какое-либо свойство, которое я могу использовать при выполнении команды maven, котораяприоритизирует classpath?

РЕДАКТИРОВАТЬ 2: я выяснил проблему, он загружается из теста / ресурсов для теста, однако мой тест включает развертывание веб-приложения (интеграционное тестирование) и оттуда, когда веб-приложение обращаетсяресурс, который он использует src / main / resources.Есть ли способ изменить порядок пути к классам или сделать один предшествующий другому для WAR, развернутого в пристани?

Ответы [ 2 ]

6 голосов
/ 08 июня 2011

Пожалуйста, проверьте каталог target / test-classes для resource.xml Ваш файл должен быть здесь.Если вы найдете этот файл, я думаю, что то же имя является проблемой.Попробуйте переименовать файл, например, test-resource.xml.Если файл не существует в каталоге test-classes, вам следует настроить управление ресурсами в файле maven pom.xml.Используйте maven-resouce-plugin .Надеюсь, это поможет.

4 голосов
/ 08 июня 2011

Не можете ли вы дать ему другое имя?
Загрузчик не знает, что ваш resource.xml находится в src/main/resources или src/test/resources, это только путь для поиска. Я думаю, что проблема не в Maven, а в том, как должен работать Loader. От Maven вы ожидаете сбросить все классов / ресурсов из src/main/resources при выполнении фазы тестирования?

...