Closed seokjin8678 closed 10 months ago
21 files 21 suites 4s :stopwatch: 71 tests 71 :white_check_mark: 0 :zzz: 0 :x: 94 runs 94 :white_check_mark: 0 :zzz: 0 :x:
Results for commit dd292281.
:recycle: This comment has been updated with latest results.
관련 이슈
PR 세부 내용
82 이슈에서 Spring Bean 생성자 주입을 받을 때 문제가 생긴다고 했지만, 통합 테스트를 여러 개 만들어도 문제가 생깁니다.
IntegrationSpec
을 상속했을 때DockerComposeContainerExtension
인스턴스가 상속 받은 클래스 만큼 생성되는데, 이때 중복적으로 컨테이너 실행되므로, 컨테이너 간 충돌이 발생하여 테스트가 실패합니다.따라서 82번 이슈와 함께 해결하기 위해
ProjectExtension
을 상속한 Extension을 만들었고,@Autoscan
어노테이션으로 모든 테스트마다 Extension이 등록되도록 하였습니다.해당 Extension은 실행된 테스트 클래스(Spec) 중
@EnableTestcontianers
어노테이션이 붙어있는 테스트가 발견되면 컨테이너를 실행하고, 없으면 실행하지 않도록 하여, 테스트 컨테이너가 필요 없는 테스트에서 테스트 컨테이너를 실행하느라 시간이 소요되는 것을 막았습니다.따라서 통합 테스트가 필요한 경우
IntegrationSpec
을 상속하여 사용하면 되고, 통합 테스트는 아니지만 DB 의존이 필요한 테스트는@EnableTestcontianers
어노테이션을 붙여서 사용하면 됩니다.