У меня есть следующие приложения Spring загрузки (с помощью Eureka и симулировать):@DataJpaTest терпит неудачу при использовании Эврика/Feign
@SpringBootApplication
@EnableFeignClients
@EnableRabbit
@EnableDiscoveryClient
@EnableTransactionManagement(proxyTargetClass = true)
public class EventServiceApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(EventServiceApplication.class, args);
}
}
и следующий тест, аннотированный с @SpringJpaTest:
@RunWith(SpringRunner.class)
@DataJpaTest(showSql = true)
public class EventRepositoryTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private EventRepository repository;
@Test
public void testPersist() {
this.entityManager.persist(new PhoneCall());
List<Event> list = this.repository.findAll();
assertEquals(1, list.size());
}
}
Во время выполнения теста я получаю следующее сообщение об ошибке:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.netflix.discovery.EurekaClient] found for dependency [com.netflix.discovery.EurekaClient]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Полный StackTrace here
Есть ли способ решить эту проблему? Я видел, что это вызвано аннотациями @EnableFeignClients и @EnableDiscoveryClient.
У вас есть пример? –
Я обновил свой ответ с помощью дополнительных ссылок и комментариев относительно отключения автоматической настройки. –
Фактически @DataJpaTest автоматически отключает автоконфигурацию, как указано [здесь] (http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest .html), поэтому отключить Feign, Eureka не требуется. Я обновил сообщение с полной трассировкой стека.Спасибо за вашу помощь в любом случае. –