반응형

2017/09/19 - [java] - spring boot - @Scheduled Test


@Scheduled 의 반복동작까지 그대로 테스트 하고 싶다면 위의 글처럼 하면 됩니다.


하지만 @Scheduled 가 걸린 함수를 기능 테스트만 하고 싶다면 조금 더 간편한 방법이 있습니다.


@EnableScheduling 을 선택적으로 사용하는 방법입니다.


@Scheduled 는 @EnableScheduling가 사전에 정의 되어야만 실행되도록 되어있습니다.


보통 @SpringBootApplication 가 정의된 Main Class에 @EnableScheduling 도 통으로 같이 설정해서 사용하는데,


Main Class에서 @EnableScheduling 을 제거하고 아래와 같은 @Configuration 클래스를 하나 추가해 @Profile을 통해 선택적으로  @Scheduled 함수들의 스케쥴링 여부를 결정할 수 있습니다.


@Profile("!test")
@Configuration
@EnableScheduling
public class SchedulingConfiguration {
 
}



@Profile("!test") 은 의미는 test 프로파일 active 되지 않았을 때 해당 설정을 적용하라는 뜻 입니다.


test 프로파일을 active 하려면 java 실행시 VMArguments 에 아래와 같이 설정하거나, 


-Dspring.profiles.active="test"


application.properties에 아래처럼 적용하면 됩니다.


spring.profiles.active=test


반응형

+ Recent posts