issues
search
CodyBuilder-dev
/
my-item-stock-batch
0
stars
0
forks
source link
배포시 contextLoads() 테스트로 인한 배포 시간 장기화 문제
#13
Open
CodyBuilder-dev
opened
3 years ago
CodyBuilder-dev
commented
3 years ago
현황
Quartz Application은 실행시점에 등록된 Job을 실행시킨다
contextLoads() 은 실행여부를 테스트하는 테스트로 추정되는데, 마찬가지로 Job이 실행된다
이로 인해 Job이 종료될 때 까지 계속해서 빌드가 수행된다
심지어 Job이 종료되고 나서도 Build 결과가 Fail로 처리된다
확인 필요 사항
Quartz Application이 실행시점에 Job이 실행되는 원리 파악
contextLoads() 테스트의 정확한 동작 파악
빌드 시점에 Job이 실행되지 않도록 하는 방법
CodyBuilder-dev
commented
3 years ago
@SpringbootTest와 contextLoads()역할 (
https://spring.io/guides/gs/testing-web/
)
@SpringbootTest는, 실제 어플리케이션과 동일하게 어플리케이션 컨텍스트를 생성한다
Bean 생성 및 주입도 이루어진다
contextLoads()에서는 아무 동작도 하지 않지만, 이 함수를 실행하기 위해서 사전에 @SpringbootTest가 수행된다
따라서, contextLoads()에서 실패가 나는 것은
실질적으로는 @SpringbootTest 수행이 실패한 것
이라고 판단할 수 있다
Quartz 의 Job실행 시점
어플리케이션 실행 시점에 Scheduler를 실행한다
이때Jobstore type이 jdbc인 경우, DB에 접근해 모든 Job 정보를 읽어와 저장한다
현재 DB에 Job들이 저장되어 있으므로 해당 정보를 불러와 수행하게 되는 것
해결책
contextLoads() 통합테스트를 제거한다
근본적인 해결책은 아니고, 너무 위험함
application.properties에 빌드용 profile을 만들고, 해당 profile에서는 Jobstore Type을 memory로 변경
현황
확인 필요 사항