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

refactor: 테스트 컨테이너 적용 #138

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

nayonsoso
Copy link
Collaborator

@nayonsoso nayonsoso commented Dec 28, 2024

관련 이슈

작업 내용

테스트 컨테이너를 적용했습니다.
도입 배경 / 적용 방법은 위키에 정리해두었습니다.
https://github.com/solid-connection/solid-connect-server/wiki/TestContainers-도입기

특이 사항

테스트 실행 시간이 제 컴퓨터 기준 13s → 25s 로 늘어났습니다 🐢
하지만 위 위키에서 정리한 4가지 장점이, 테스트 실행 시간 증가로 인한 단점보다 더 크다고 생각합니다.
이에 대한 다른 분들의 생각을 듣고 싶습니다.

리뷰 요구사항 (선택)

1/
❗️이 브랜치 pull 받아서, 본인 컴퓨터에서는 테스트 시간 얼마나 늘어났는지 알려주세요❗️
다른 분들이 불편할만큼 테스트 시간이 늘어난거라면 도입을 재고해봐야 할 것 같습니다😞

2/
그리고 '데이터베이스 연결 및 테이블 존재 여부 테스트'랑 '레디스 연결 및 작동 테스트'는
전체 테스트에 포함시키지 않도록 Disabled 어노테이션 달아줬습니다.
연결에 문제가 있다고 생각되시는 분들만 Disabled 해제하셔서 테스트하는게 좋을 것 다 생각했습니다.
괜찮나요?

3/
application-db.yml 에도 변경사항 생겨서 PR 만들어두었어요. https://github.com/solid-connection/solid-connect-secret/pull/3
이 코드 내용에 대해서 다 approve 하시면
secret에 올려둔 PR머지 → 이 PR에 서브모듈 HEAD 업데이터 커밋 추가 → 머지
하겠습니다.

@nayonsoso nayonsoso self-assigned this Dec 28, 2024
@Gyuhyeok99
Copy link

TestContainers라는 기술을 처음 접했는데, 테스트 환경의 일관성을 보장하고 Redis와 같은 외부 시스템을 포함한 테스트를 안정적으로 수행할 수 있는 좋은 선택지라고 생각됩니다.
특히, 이전에 제 로컬 환경에서 원인을 알 수 없었던 테스트 코드 실패 문제가 발생했던 경험이 있었는데, 이러한 문제 해결에 TestContainers가 큰 기여를 할 거 같습니다. 😊

  1. 제 노트북 사양은 M1 MacBook Air, RAM 16GB인데 테스트 코드 실행 시간이 20초 → 50초로 약 두 배 가까이 늘어났습니다.

  2. DB 연결 관련 테스트는 지금 바뀐 방식처럼 필요할 때만 Disabled를 해제해서 사용하는 것도 좋은 방법이라고 생각됩니다.

생각보다 실행 시간이 꽤 많이 늘어났지만, 테스트 환경의 일관성을 보장한다는 좋은 장점을 포기하기는 아쉽다고 생각합니다.
따라서 이 방식을 유지하되, 최적화할 수 있는 방법을 고민해보면 좋을 것 같습니다!

Copy link
Contributor

@wibaek wibaek left a comment

Choose a reason for hiding this comment

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

  1. 저는 25초 -> 75초로 3배정도 늘었습니다.
    다만 이를 감안할정도로 좋은 방법이라 생각합니다. CI를 하기도 훨씬 편해지니 만큼 로컬에서 테스트를 까먹거나 느려서 시도하지 못한다 해도 PR시에 자동으로 테스트시켜도 될 것 같고요!

그리고 혹시 저는 testImplementation 'com.redis:testcontainers-redis' 에서 버전 미지정시 오류가 나는데 저만 그럴까요...?🥲

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

test / dev 환경의 db 통일
3 participants