Я использую Spring Boot 1.4.3.RELEASE и хочу, чтобы некоторые компоненты не проверялись при запуске тестов.Spring ComponentScan excludeFilters аннотация не работает в Spring Boot Test context
@RunWith(SpringRunner.class)
@SpringBootTest
@ComponentScan(
basePackages = {"com.foobar"},
excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {AmazonKinesisRecordChecker.class, MyAmazonCredentials.class}))
public class ApplicationTests {
@Test
public void contextLoads() {
}
}
Несмотря на фильтры, когда я запускаю тест нежелательные компоненты загружаются и Спринг загрузки происходит сбой, поскольку эти классы требуют среды AWS для правильной работы:
2017-01-25 16:02:49.234 ERROR 10514 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'amazonKinesisRecordChecker' defined in file
Вопрос: как я могу заставить фильтры работать?
@SpringBootTest (classes = << выберите классы для загрузки >>). Документы: http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/SpringBootTest.html – Barath
@Barath Вы говорите, что есть только способ включить классы, но не исключать их, когда весной Boot Test? – Javide
Нет, я так не говорю, вы можете использовать WebMvcTest для исключения фильтров Doc: http: //docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/web/servlet /WebMvcTest.html – Barath