인프런 커뮤니티 질문&답변

emkemkemk님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Business Layer 테스트 (1)

ActiveProfiles("test")를 대체할 수 있는 다른 방법이 있을까요?

해결된 질문

작성

·

625

·

수정됨

0

안녕하세요 선생님, 먼저 좋은 강의 감사드립니다. 

 

로컬환경과 테스트 환경을 별도로 관리해주기 위해서, test 프로파일을 사용하는 것은 이해했습니다.

그런데, 이렇게 되면 모든 클래스에 ActiveProfiles 를 붙여줘야하니 다소 번거로울 것 같습니다.

제가 생각한 방법으로는 SpringBootTestActiveProfiles를 묶는 어노테이션을 별도로 만들고, 만든 어노테이션을 이용해볼 것 같습니다.

혹시 ActiveProfiles 를 대체하기 위한 또 다른 방법은 어떤 것들이 있을까요?

좋은 강의 감사드립니다 :)

답변 2

2

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, haero77님! :)

아마 Business Layer 테스트 강의를 듣고 남겨주신 질문 같은데, 좋은 질문이네요 👍

강의를 조금 더 진행하시면 뒤쪽에서 해당 관련 내용을 언급하고 있으니 참고해주시면 좋을 것 같습니다.
(테스트 환경 통합에 대한 이야기에요.)

감사합니다! :)

2

안녕하세요. 테스트 초짜 입니다.

선생님이 답변 하시기 전에 제 사례를 얘기 해드리고 싶어서 답변 남기게 되었어요. (정답이 아닐 수도 있습니다)

 

저 같은 경우에는...

  • local 테스트에 로컬 H2 DB를 사용

  • test 테스트에 실제 DB환경과 똑같은 TEST DB 활용

이 두가지를 시도 할 수 있겠끔 테스트 프로파일을 분리해두었는데요

 

인텔리제이 Junit 실행 구성 -> vm 옵션 -> -Dspring.profiles.active= local 혹은 test 이런식으로 사용을 하고 있어요.

 

실제로 배포한 이후 실제 서버에서 테스트를 진행할때는...

./gradlew clean -Dspring.profiles.active=`test` build 이런식으로 하구 있구요.

 

이렇게 하면 haero77님이 말씀하신 별도의 ActiveProfiles를 작성하지 않고, 실행시에 profile 인자값만 넘겨주면 되더라구요.

 

다음은 분리된 yml 파일 명 예시입니다.

저도 제가 답은 아닌 것 같은데...

선생님은 무슨 답변 주실지 궁금하고 기대가 됩니다.

박우빈님의 프로필 이미지
박우빈
지식공유자

먼저 답변 남겨주셔서 감사합니다 ㅎㅎ

알려주신 방법도 좋은 방법 중 하나네요 👍

emkemkemk님의 프로필 이미지
emkemkemk
질문자

배포 후 테스트를 하는 경우는 생각해보지 못했던 부분인데 이런 방법이 있었군요..😆

penekhun님 인사이트 감사합니다 :)