-
Notifications
You must be signed in to change notification settings - Fork 2
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
테스트 환경에서 하나의 컨테이너가 작동하도록 설정 #103
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다~
모든 테스트들을 독립적으로 실행할 수 있도록
에 대한 내용을 코드에서 찾지 못했어요.
이에 대해 더 설명해 주세요!
아까 얘기한대로 데이터베이스를 여러 개 생성하나요?
const container = global.reusedContainer; | ||
|
||
if (container) { | ||
await container.stop(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q. 이거 안하면 컨테이너가 계속 돌아가나요?
라이브러리에서 자체적으로 자원 정리해주는 기능이 없나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reuse()
메소드를 이용하게 되면 기존 컨테이너를 재사용한다고 명시해주게 되므로 컨테이너를 정리하지 않습니다!
@@ -68,7 +53,6 @@ describe('PlaceRepository', () => { | |||
); | |||
await placeRepository.save(places); | |||
|
|||
// when | |||
const page = 1; | |||
const pageSize = 10; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p3. 테스트랑 직접 관련있는건 아니지만,
테스트 코드를 보니, page
, size
에 기본값을 설정하면 좋을 것 같다는 생각이 들어요.
테스트에서도 테스트하고자 하는 기능에 대한 내용만 담길 수 있을 것 같습니다!
어떻게 생각하시나요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋다고 생각합니다! 다만, 페이지네이션이 잘 되는지 확인하는 테스트조 하나 있어야 할 것 같아요
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고했습니다!
8a02c3a
to
4579965
Compare
그럼 병렬이 아니지 않나요? |
아 직렬로 실행합니다. 잘못 말했네요 ㅎㅎ 기본값이 병렬 실행이에요 |
4579965
to
babfee1
Compare
📄 Summary
🙋🏻 More
jest
환경설정 분리 (package.json -> jest.config.ts
)테스트 설정 파일들을
config
디렉토리로 변경하나의 컨테이너에서 모든 테스트들을 독립적으로 실행할 수 있도록 버그 수정
작동과정
yarn run test
globalSetup
에서DB Container
생성 (전역객체로 관리, 추후globalTeardown
에서 제거하기 위해)globalSetup
,globalTeardown
에서 사용하는global.전역객체
는globalSetup
,globalTeardown
두 파일에서만 사용 가능합니다.jest cli
인자에--runInBand(alias. -i)
속성을 주어 테스트를 직렬적으로 실행할 수 있게 설정.-
--runInBand
속성은 매우 좋은 성능에서는 속도가 조금 느려지는데, 우리 같이Container
를 사용하는 등의 열악한 환경에서는 속도가 더 빨라짐 (정확한 기준은 모르겠음 + gpt가 내 맥북 2019 i7 16gb 정도에서도 빨라질거라 함. ㅠㅠ)globalTeardown
이 컨테이너를 종료 및 삭제 시켜줌. (중간에 테스트를 강제 종료하는 경우container
를 직접 삭제해야 함)기타
Docker
가 실행중이어야함.참고
🕰️ Actual Time of Completion
close #72