강의

멘토링

커뮤니티

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

namhkim님의 프로필 이미지
namhkim

작성한 질문수

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

테스트 환경에서 insert문이 짤리는 현상

작성

·

366

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
회원 도메인 개발 -> 회원 기능 테스트 단원에서 회원가입 기능을 공부하는 부분에서 생긴 문제점입니다.
제 테스트를 실행하면 insert문이 보이지 않습니다.
 
코드는 이렇습니다.
 
package jpabook.jpashop.service;

import jpabook.jpashop.domain.Member;
import jpabook.jpashop.repository.MemberRepository;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.EntityManager;

import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class MemberServiceTest {

@Autowired
MemberService memberService;
@Autowired
MemberRepository memberRepository;
@Autowired
EntityManager em;

@Test
@Rollback(value = false)
public void 회원가입() throws Exception{
//give
Member member = new Member();
member.setName("kim");

//when
Long saveId = memberService.join(member);
//em.flush();
//then
assertEquals(member, memberRepository.findOne(saveId));
}

@Test
public void 중복_회원_예외() throws Exception{
//give

//when

//then
}

}

 

다른 문의 글들의 기본 문제점이 yml 문제여서 혹시 몰라 저의 yml도 첨부해봤습니다.(강사님께서 올려주신 yml을 그대로 복붙해도 insert문은 안 생깁니다)

spring: #띄어쓰기 없음
datasource: #띄어쓰기 2
url: jdbc:h2:tcp://localhost/~/jpashop #4
username: sa
password:
driver-class-name: org.h2.Driver

jpa: #띄어쓰기 2
hibernate: #띄어쓰기 4
ddl-auto: create #띄어쓰기 6
properties: #띄어쓰기 4
hibernate: #띄어쓰기 6
show_sql: true #띄어쓰기 8
format_sql: true #띄어쓰기 8

logging.level: #띄어쓰기 없음
org.hibernate.SQL: debug #띄어쓰기 2
# 파라미터 쿼리 로그 남기는 옵션
org.hibernate.type: trace #띄어쓰기 2

 

+

하루 종일 문제점을 찾다보니까 이상한 현상을 발견했습니다.

제 로그가 부분적으로 잘리는거 같습니다.

실행을 하다가 로그창이 깜빡하다가 최종화면에서 insert문이 지워집니다.
빨간색 부분을 보면 insert가 있는데 최종적으로 실행하면 이 부분이 로그에서 짤립니다.

보시면 ctrl + f를 사용해서 insert를 검색하면 안나옵니다.

교재기준 차이점은 test/resouce/application.yml을 추가 안한것인데 강의에서는 추가가 안되있어서 제외하였습니다.

 

어떻게 하면 로그가 안사라지게 할 수 있을까요..?

 

답변 1

0

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

.

테스트의 상세 항목을 선택해보시겠어요?

그리고 다시 로그를 검색하여 insert가 있는지 확인해주세요.


.
감사합니다.

 

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

있습니다 ㅠㅠ 감사합니다 ㅠㅠ

구글링 해도 키워드가 애매해서 안나오고 강사님꺼랑 디버깅 설정 틀린거 없나 엄청 찾다가 하루 갔는데 드디어 해결했네요 ㅠㅠ

개념적으로 잘못이해한거 같지도 않아서 너무 힘들었는데 감사합니다 ㅠㅠ

파이팅입니다:)

namhkim님의 프로필 이미지
namhkim

작성한 질문수

질문하기