У меня есть @SpringBootTest
, который проверяет загрузку @ConfigurationProperties
и его методы. Он находится в test
исходном наборе.
И в itest
у меня есть интеграционный тест, который использует Wiremock (отправка запросов и использование заглушек в качестве ответа и т. Д.)
Теперь,когда я запускаю gradle test
, первый тест завершается неудачно, говоря:
[ENV = local] [productName = app-gateway-api] [2019-10-22T16: 18: 30.994Z] [ОШИБКА] [MSG = [Тестовый работник] osboot.SpringApplication - сбой запуска приложения org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка создания бина с именем 'myController', определенного в файле [E: \ coding \ code \ app \ build \ classes\ java \ main \ com \ app \ controller \ MyController> .class]: неудовлетворенная зависимость выражается через параметр конструктора 0;вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'proxyService': сбой внедрения зависимостей с автопроводкой;вложенное исключение - java.lang.IllegalArgumentException: не удалось разрешить заполнитель 'wiremock.server.port' в значении "http://localhost:${wiremock.server.port}/send"
, которое используется в некоторых внешних свойствах. Значение будет использоваться в itest
, но не в test
. Но контекст загружает его всегда.
В других проектах, использующих его таким образом, проблем нет. Но, похоже, он загружает все классы и не может найтиWiremock и создайте сервер.
Тест в проблеме:
@SpringBootTest
public class MapperLookupTest {
...
}
Зависимость Wiremock уже имеет compile
scope:
compile('com.github.tomakehurst:wiremock-jre8-standalone:2.21.0')
compile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner")
Я пытался загрузить тольконеобходимые классы с @SpringBootTest(classes = {...})
, но это слишком многословно.
Итак, есть ли какой-нибудь простой способ определить контекст для загрузки Wiremock?