Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] - BE 테스트 개선 2단계 Testcontainers 도입 #623

Merged
merged 22 commits into from
Dec 23, 2024

Conversation

Libienz
Copy link

@Libienz Libienz commented Dec 19, 2024

✅ 작업 내용

  • Test에서 사용되는 H2 내장 데이터베이스를 테스트컨테이너의 MySQL 데이터베이스로 교체
  • Test에서 사용되는 S3 스터빙 로직을 테스트컨테이너 LocalStackContainer 기반의 실제 환경으로 교체
  • 로컬 환경에서 Flyway Script를 검증할 수 있도록 flyway enable
  • H2 문법으로 작성된 DBCleaner 객체 수정
  • S3 스터빙 테스트 제거 및 테스트 컨테이너를 활용하도록 수정
  • 테스트 시 생성된 테스트 컨테이너들이 다른 테스트에서 재사용되도록 테스트 비용 절감 (추상 클래스의 static 블록을 통한 컨테이너 공유)

🙈 참고 사항

  • 앞으로 테스트 돌릴 때 개발자 로컬환경에 도커를 실행시킨 상태로 실행해야 합니다.
  • 현재 테스트 돌릴 때 운용하는 컨테이너는 MySQL 컨테이너와 S3 컨테이너 두개입니다.
  • default profile로 실행되던 테스트 환경의 프로파일이름이 test로 변경되었습니다.

테스트 컨테이너는 자바 코드레벨에서 컨테이너를 구성하고 컨테이너와의 협력을 통한 통합테스트를 간편하게 구현할 수 있도록 합니다. 궁금한 것이 있으시다면 코멘트로 질문 남겨주세요. 리뷰도 잘 부탁드립니다.

@Libienz Libienz added this to the sprint 8 milestone Dec 19, 2024
@Libienz Libienz changed the title https://github.com/woowacourse-teams/2024-touroot/issues/622 [Feature] - BE 테스트 개선 2단계 Testcontainers 도입 Dec 19, 2024
@Libienz Libienz linked an issue Dec 19, 2024 that may be closed by this pull request
6 tasks
Copy link

github-actions bot commented Dec 19, 2024

Test Results

 30 files   30 suites   50s ⏱️
296 tests 295 ✅ 1 💤 0 ❌
308 runs  307 ✅ 1 💤 0 ❌

Results for commit 1074a5a.

♻️ This comment has been updated with latest results.

@Libienz Libienz marked this pull request as draft December 19, 2024 07:26
@Libienz Libienz marked this pull request as ready for review December 19, 2024 09:48
Copy link
Member

@nak-honest nak-honest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 전부 확인 완료하였습니다!
테스트 컨테이너 적용 및 static 을 통해서 모든 테스트에서 재사용 하도록 한 부분 잘 봤습니다!

깃헙 액션 러너에서는 왜 잘 동작하는지 궁금해서 찾아봤는데, 기본적으로 도커가 설치되어 있군요!
러너에서도 잘 동작한다는 것 확인 완료했습니다!

대부분이 설정에 대한 코드밖에 없어서 딱히 드릴 코멘트는 보이지 않네요!
고생 많으셨습니다 리비클로버~~

다만 제 노트북에서는 테스트 코드를 돌릴 때 2분 가량 소모가 되는데,, 더 빠르게 돌릴 수 있는 방법이 없나 궁금하네요 ㅠㅠ

@Libienz
Copy link
Author

Libienz commented Dec 19, 2024

@nak-honest

다시 돌려보셨나요? 2분 넘게 돌아가는 거는 도커 이미지를 댕겨오는 시간인 것 같은데 한번 땡겨오면 이후에 그만큼 걸리지는 않을 것 같습니다.
제 로컬에서는30초가량, 클로버 로컬에서는 50초가량이었습니다~

@nak-honest
Copy link
Member

다시 두 번 정도 돌려봤는데 1분 30초 정도 걸리네요..!
리비클로버 놋북보다 제 놋북이 느려서 그런 것 같슴다!

@slimsha2dy
파카씌 놋북에서 반복해서 돌려보시고, 얼마나 걸리는지 말씀해 주시면 감사하겠슴다!
램 8GB에서 괜찮은지 한번 보면 좋을 것 같아욥 ㅎㅎ

@Libienz Libienz merged commit 7131158 into develop/be Dec 23, 2024
3 checks passed
@Libienz Libienz deleted the feature/be/#622 branch December 23, 2024 05:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[Feature] - BE 테스트 개선 2단계 Testcontainers 도입
3 participants