2017-11-21 26 views
1

통합 테스트를 실행할 때 을 비활성화하고 싶습니다.스프링 부트가 통합 테스트 용 @EnableAsync를 비활성화합니다.

내 테스트 패키지에서 같은 이름의 클래스로 @EnableAsync이라는 주석이 달린 구성 파일을 덮어 쓰려고했지만 작동하지 않습니다. 나는 그것을 보았다 Is it possible to disable Spring's @Async during integration test?

:

당신은 ... 테스트 구성을 만들거나 단순히 SyncTaskExecutor와

하지만 함께 작업 실행을 무시할 수 있습니다이 주제에

어떻게하는지 이해하지 못한다.

어떤 조언이 필요합니까? 감사합니다

답변

5

당신이 링크 한 주제가 좋은 해결책을 제공합니다.

테스트를 위해 SyncTaskExecutor을 만들려면 실제로 스프링 컨텍스트에 대한 테스트 구성 클래스가 있어야합니다. , 그것을 위해 봄 문서를 참조하십시오 :이 구성 클래스에서 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

새로운 빈을 추가하여

@Bean 
@Primary 
public TaskExecutor taskExecutor() { 
    return new SyncTaskExecutor(); 
} 

해야한다고!

라이브 구성에서이 bean을 생성하지 않도록주의하십시오!