Обновлено
Мой класс перечисленных ниже (ServiceDiscoveryConfiguration
) никогда не будучи использованы. Даже если я удалю @EnableDiscoveryClient
, чтобы попытаться полностью избежать установки, он по-прежнему пытается подключиться к Консулу.Spring Консул - отключить для модульных тестов
Единственное, что работал для меня был полностью удалить консулом Maven depdency:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
Что я могу сделать, чтобы предотвратить консулом для запуска для модульных тестов, если не по профилю и аннотаций установки?
Оригинал
У меня есть приложение, использующее Spring Consul. У меня есть класс, созданный для включения открытие так:
@Profile ("!" + Profiles.UNIT_TEST)
@Configuration
@EnableDiscoveryClient
public class ServiceDiscoveryConfiguration {
}
Это должно быть отключая часть консулом, если я не ошибаюсь. Базовый тестовый класс (это abstract
, общий для всех моих модульных тестов) настраивается со следующими аннотациями. Это где я думаю проблема есть.
@SpringBootTest (classes = Service.class)
@WebAppConfiguration
@TestExecutionListeners (...)
@DirtiesContext
@ActiveProfiles (Profiles.UNIT_TEST)
@Test (...)
public abstract class AbstractBootTest extends AbstractTestNGSpringContextTests {
// ...
}
Когда я исполняю свои тесты я получаю:
Вызванный: com.ecwid.consul.transport.TransportException: java.net.ConnectException: Соединение отклонено
Этот заставляет меня думать, что активация профиля не работает, или мой синтаксис с использованием оператора !
по спецификации @Profile
не делает то, что я думал, что он должен был делать. Сам класс выполнения root имеет основные аннотации, включая аннотацию @ComponentScan
, которую, как я знаю, имеет проверенные пакеты.
Помощь?
Я не верю, что это связано с профилем. Я обновляю свой вопрос, поскольку мне нужно удалить зависимости Maven. –
Итак, после отладки, класс никогда не попадает. Это похоже на игнорирование этой конкретной опции конфигурации. –