1. 설정 파일 복사 및 이름 변경
우선 기존의 application.yml 파일을 src/test/resources 디렉토리 아래에 복사한다.
그리고 파일의 이름을 application-{프로파일명}.yml로 변경해준다.

여기서 {프로파일명}은 사용할 프로파일의 이름을 넣으면 된다.
예를 들어 테스트용 프로파일의 이름을 test로 정했다면 파일 이름은 application-test.yml이 된다.
2. 테스트용 데이터베이스 정보 수정
복사한 설정 파일에서 테스트에 사용할 데이터베이스 정보를 수정한다.
예를 들어, H2 데이터베이스를 사용하기 위해서는 다음과 같이 변경할 수 있다.
application-test.yml
spring:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
driverClassName: org.h2.Driver
username: sa
password:
sql-script-encoding: utf-8
여기서 jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE는 메모리에 임시 데이터베이스를 생성하고, 테스트가 종료될 때까지 데이터베이스를 유지하도록 설정한다.
3. 테스트 클래스에 어노테이션 추가
테스트 클래스에 @ActiveProfiles("프로파일명") 어노테이션을 달아준다.
이렇게 하면 해당 테스트 클래스는 지정한 프로파일을 사용하여 실행된다.
예를 들어, 위에서 application-test.yml을 작성했다면, 테스트 클래스에 다음과 같이 어노테이션을 달아준다.
@ActiveProfiles("test")

이렇게 설정하면, 개발 환경과는 별개로 테스트 환경에서만 특정 데이터베이스를 사용할 수 있게 된다.
이는 테스트의 독립성을 보장하고, 실제 운영 환경과의 충돌 가능성을 줄여준다.
4. build.gradle에 테스트 환경 프로파일 추가
Gradle의 build 태스크를 사용하여 JAR 파일을 생성할 때 테스트용 프로파일을 사용하려면, build.gradle에 다음을 추가한다.
build.gradle
test {
// 테스트 실행 시 'test' 프로파일을 활성화
systemProperty 'spring.profiles.active', 'test'
}
이렇게 설정하면 gradle build를 실행할 때 테스트가 실행될 때 'test' 프로파일이 활성화되어, 테스트용 설정(application-test.yml)을 사용하게 된다.
이 방법은 테스트 실행 시에만 'test' 프로파일을 사용하게 하며, 실제로 생성되는 JAR 파일은 기본 프로파일 또는 명시적으로 지정한 다른 프로파일 설정을 사용하게 된다.
'Java > Spring Framework' 카테고리의 다른 글
| [Spring Boot] Jasypt로 yml 암호화하기 (0) | 2024.05.03 |
|---|---|
| [Spring Boot] IntelliJ에서 스프링 부트 프로젝트 시작하기 (0) | 2024.05.03 |
| [Spring Boot] 테스트 코드 작성하기 (JUnit, AssertJ, Mockito) (0) | 2024.04.19 |
| [Spring Boot] 스프링 시큐리티 + JWT (0) | 2024.04.01 |
| [Spring Boot + React] 리액트를 위한 스프링 시큐리티 추가 설정 (CORS 오류 해결+인증 성공시 응답) (0) | 2024.03.20 |