@SpringBootTest
을 MyApplicationContextInitializer
실행없이 "깨끗한"컨텍스트에서 실행하려고합니다.@SpringBootTest에서 ApplicationContextInitializers를 제외하는 방법은 무엇입니까?
org.springframework.context.ApplicationContextInitializer=\
com.eremic.myapp.MyApplicationContextInitializer
테스트 클래스 :
@SpringBootTest(webEnvironment = RANDOM_PORT)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestContext.class)
public class UsersControllerTest {}
테스트 구성 :
@SpringBootConfiguration
public class TestContext {}
MyApplicationContextInitializer
은 이런 compile-scope
의존성에 spring.factories
파일 내에 포함
에서 MyApplicationContextInitializer
을 제외 할 수있는 방법이 있습니까?
나는 이미 excludeFilters @ComponentScan.Filters
에 지쳐 있었지만 ApplicationContextInitializer에는 아무런 영향을 미치지 않습니다.
또한, 나는 @SpringBootApplication
와 TestContext
에 주석 및/또는 exclude = MyApplicationContextInitializer.class
를 사용하는 scanBasePackages
와 구성 요소 검색을 제한하는 시도했지만 아무 효과도 없습니다.
@SpringBootTest
에서 MyApplicationContextInitializer
이 실행되는 것을 막는 유일한 방법은 MyApplicationContextInitializer
이 선언 된 maven 종속성을 제거하는 것입니다.
감사합니다. 필 필자는 몇 주 전에 문제를 열었지만 '질문'으로 표시되어 https://github.com/spring-projects/spring-boot/issues/11457을 닫았습니다. – eremic
지금 2.0.0.RC2로 다시 열리고 목표 –