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

rnrmf1121님의 프로필 이미지
rnrmf1121

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

MemberServiceTest 오류

해결된 질문

작성

·

246

0

첨부한 사진과 같이 코드를 작성 했는데 아래와 같은 오류가 떴습니다...

혹시 어떻게 해야되는지 여쭤봐도 될까요스크린샷 2024-02-01 162043.png

 

============================

CONDITIONS EVALUATION REPORT

============================

Positive matches:

-----------------

None

Negative matches:

-----------------

None

Exclusions:

-----------

None

Unconditional classes:

----------------------

None

답변 1

0

안녕하세요. rnrmf1121님, 공식 서포터즈 y2gcoder입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

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

https://drive.google.com/file/d/1US2qMe73NPNsn966X5LiUvVt_u6J7Aqq/view?usp=sharing

전체 프로젝트 압축 링크입니다.

MemberServiceTest중 회원가입() 부분을 실행하면 본문과 같은 오류가 뜨는데 혹시 어떻게 해야 될까요

image권한 을 허용해주십쇼!!

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

https://drive.google.com/file/d/1US2qMe73NPNsn966X5LiUvVt_u6J7Aqq/view?usp=drive_link

프로젝트 압축 링크입니다.

권한 허용했습니다.

보내주신 코드 확인했습니다!

먼저 현재 MemberServiceTest 코드를 보시면 이미 에러가 발생하고 있는 것을 보실 수 있습니다!

image@RunWith 애노테이션을 불러올 수 없는 것 같습니다. 그 이유는 @RunWith 애노테이션이 테스트 프레임워크인 Junit 4에서 지원하는 애노테이션이기 때문입니다.

image

스프링 부트 3버전을 사용하고 계신다면 Junit 5를 기본적으로 사용하고 계시기 때문에 해당 기능을 사용하기 위해서는 따로 설정을 해주셔야 합니다!

그래서 프로젝트 환경설정 챕터의 강의자료를 보시면 다음과 같은 설명이 있습니다 🙂

image

 

그래서 아래의 build.gradle과 같이 Junit4를 사용하기 위한 설정을 추가한 후 MemberServiceTest를 가서 실행해보시면!

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.8'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'jpabook'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-devtools'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	//JUnit4 추가
	testImplementation("org.junit.vintage:junit-vintage-engine") {
		exclude group: "org.hamcrest", module: "hamcrest-core"
	}
}

tasks.named('bootBuildImage') {
	builder = 'paketobuildpacks/builder-jammy-base:latest'
}

tasks.named('test') {
	useJUnitPlatform()
}

image강의와 동일하게 테스트 코드를 작성하실 수 있습니다!

 

 

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

앗 근데 제가 했을때는 @Runwith 쪽에 문제라고 뜨지는 않긴 한데...

올려주신 코드 넣고 다시 돌려봤는데 회원가입() 부분에서 아래와 같이 뜨면서 오류가 나는데 혹시 다시 알려주실수 있으실까요.... 처음하는거라 익숙하지도 않고 오류 코드 해석하는것도 어렵네요...

 

java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@1a2e563e testClass = jpabook.jpashop.service.MemberServiceTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@4b741d6d, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7674f035, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@17f62e33, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@5149d738, org.springframework.boot.test.context.SpringBootTestAnnotation@eedd3ea0], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]

제 환경에서는 해당 에러가 발생하지 않는 것 같습니다. 혹시 예외 트레이스를 보면

Caused by: ~

해당 부분까지 전체 예외를 보여주실 수 있을까요?

 추가로

 

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

아 해결됐습니다.... 어제 마지막에 한거랑 똑같이 했는데 왜 어제는 안됐는지는 모르겠네요.... 그래도 하나하나 전부 답변해주셔서 정말 감사합니다!!

해결되셨다니 다행입니다!

감사합니다 :)

rnrmf1121님의 프로필 이미지
rnrmf1121

작성한 질문수

질문하기