SpringBoot JPA 공부를 위해 SpringBoot starter로 설치를 진행하려던 중,
SpringBoot 2.x 버전 종료로 3.x 버전만 지원한다는 것을 깨달았다.
하지만 기존 진행했던 프로젝트를 복습하려 했기에 2.x 버전처럼 사용하려 했고
build.gradle만 기존 프로젝트를 참고하여 복붙했던게 화근이었을까.
MemberRepositoryTest를 실행하려 했지만 아래와 같이 spring boot가 test를 찾지 못하는 에러가 떴다.
Execution failed for task ':test'.
> No tests found for given includes: [jpabook.jpashop.MemberRepositoryTest.testMember](--tests filter)
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 2s
4 actionable tasks: 2 executed, 2 up-to-date
해결 방법 : 재설치!
1. Java 17 설치
https://www.oracle.com/java/technologies/downloads/#jdk17-windows
위 링크에서 운영체제에 맞는 java 17을 다운받는다.
나의 경우 윈도우즈, x64, msi 버전 다운
- msi 버전 : 윈도우 표준 설치 패키지
1-1. Java 17 환경 변수 설정
시스템 환경 변수 편집 > 환경 변수 > 시스템 변수 새로 만들기
- 변수 이름 : JAVA_HOME
- 변수 값 : C:\Program Files\Java\jdk-17 (java 17이 설치된 경로)
1-2. 시스템 변수의 Path 더블 클릭
%JAVA_HOME%\bin 을 가장 상단에 추가
- 가장 상단에 추가하는 이유 : 시스템이 path를 찾을 때 상단부터 찾기 때문에, 다른 버전의 java를 인식하지 않도록 가장 상단으로 끌어올려 줌
1-3. 설정 확인
cmd (명령 프롬프트)에 들어가, java -version 입력
java 17.0.10 버전 확인
2. SpringBoot Starter 통해 프로젝트 파일 생성
- jpa 강의를 듣고 있기 때문에 Project Group과 Artifact는 위와 같이 작성했다
Dependency에는
Spring Web, Thymeleaf, Spring Data JPA, H2 Database, Lombok, Validation을 추가한다
파일을 생성하고, 압축 해제하여 IntelliJ로 실행
3. IntelliJ 설정
처음 build를 하려고 하면 기존의 java 11 버전으로 되어있는 설정때문에 빌드가 되지 않는다.
3-1. Project JDK 설정
Project Structure > Project > SDK 17 사용
3-2. Setting 설정
Settings > Build Tools > Gradle 에서
- Build and run using과 Run tests using을 Gradle로 설정
- Gradle JVM을 17로 설정 (17 버전 혹은 그 이상 버전)
4. 파일을 실행하여 localhost:8080/ 에서 아래처럼 뜨면 성공
5. test에 사용되는 JUnit 버전을 JUnit5에서 JUnit4로 낮추기
강의에서 사용되는 JUnit 버전이 4이기 때문에 맞추기로 했다.
5-1. build.gradle의 dependencies에 아래 내용 추가 후 build
//JUnit4 추가
testImplementation("org.junit.vintage:junit-vintage-engine") {
exclude group: "org.hamcrest", module: "hamcrest-core"
}
6. 롬복 적용 확인
@Getter, @Setter 적용되는지 확인
7. Test파일 확인
7-1. @RunWith 적용 후 @Test 적용
- Test는 아래의
import org.junit.Test;
을 사용해야 한다
(api 뭐시기는 JUnit5 버전!)
8. 성공!
Test가 잘 돌아가는 것을 확인하면 완료!
참고자료
https://yungenie.tistory.com/11
실전! 스프링 부트와 JPA 활용1 - 김영한
'IT (프론트엔드 외)' 카테고리의 다른 글
[Git] Git push error (0) | 2023.06.21 |
---|---|
[Django] Migration (0) | 2023.04.15 |
[Python] 얕은복사 vs 깊은복사 (0) | 2023.02.11 |