Доступ к файлу в / test / resources - проблема с classpath - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над мультимодульным проектом Spring.У одного из дочерних модулей есть несколько файлов в / test / resources / certs / и файл свойств в /test/resources/test-ssl.properties.

───resources │ test-ssl.properties ├───certs │ test-keystore.p12

test-ssl.propertiesимеет свойство, которое указывает на файл /certs/test-keystore.p12.

server.ssl.trust-store=/certs/test-keystore.p12

В дочерних модулях pom.xml я использую плагин Maven test-jar, а в родительском pom я добавил этот модуль в качестве зависимости.

С этой структурой тест интеграции, присутствующий в родительском модуле, может успешно читать classpath:test-ssl.properties, но он не может разрешить значение своего свойства.

Spring throws FileNotFoundException: \certs\test-keystore.p12.Какие изменения мы можем сделать, чтобы Spring прочитал файл, присутствующий в тестовом банке?

Также пробовал следующие шаблоны:

server.ssl.trust-store=classpath:/certs/test-keystore.p12

server.ssl.trust-store=classpath:certs/test-keystore.p12

server.ssl.trust-store=classpath*:/certs/test-keystore.p12

Обратите внимание, что это свойство теста не пытается загрузить какой-либо сертификат.Это происходит потому, что заполнитель свойства может найти некоторое значение для свойства во время сборки.

1 Ответ

0 голосов
/ 23 мая 2018

Проблема устранена путем изменения фазы integration-test на process-test-resources.

Кредит идет на следующий ответ Паскаль Thivent :

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...