2

@WebMvcTest을 사용하여 컨트롤러를 테스트하고 종속성을 조롱하고 싶지만 스프링 부트의 자동 구성은 내 Couchbase (스프링 데이터) 구성을 자동으로로드합니다. 테스트를 실행하는 일부 플랫폼에서는 Couchbase를 사용할 수 없으므로 Test 클래스는 Exception을 throw합니다. 자동 구성 메커니즘에서 일부 클래스를 제외하려면 어떻게합니까?@WebMvcTest를 사용할 때 Spring의 자동 구성을 사용하여 추가 된 클래스를 제외하는 방법은 무엇입니까?

excludeFilters 옵션을 @WebMvcTest@ActiveProfile으로 시도해 다른 응용 프로그램 컨텍스트를로드했지만 작동하지 않았습니다.

테스트 구성 :

@RunWith(SpringRunner.class) 
@WebMvcTest(value = ExchangeJobImportController.class, excludeFilters = @ComponentScan.Filter(classes = CouchbaseConfiguration.class)) 
@ActiveProfiles("test") 
public class ExchangeJobImportControllerTest { 
    ... 
} 

카우치베이스 주식회사 구성 : 후

@Configuration 
@EnableCouchbaseAuditing 
@EnableConfigurationProperties({CouchbaseProperties.class}) 
@EnableCouchbaseRepositories(basePackages = "com....") 
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration { 
    ... 
} 

답변

2

좀 더 나는 해결책을 발견 어려움을 겪고 :

@RunWith(SpringRunner.class) 
@WebMvcTest(value = ExchangeJobImportController.class, excludeAutoConfiguration = Application.class, secure = false) 
@ActiveProfiles("localhost") 
public class ExchangeJobImportControllerTest { 
    ... 
} 

다음 @WebMvcTest 주석의 @SpringBootApplication 주석 클래스를 제외 기록을 위해 스프링 부트 1을 사용하고 있습니다. 5.1.RELEASE

+0

한 시간 동안 실패한 필터에 대해이 구성을 찾으려 고 투쟁하라 !! 고맙습니다! – Antimo