반응형

환경: java11, springboot 2.5.6

 

@SpringBootTest로 integration 테스트를 할 때 DB변경사항에 대해서 쿼리로 확인하고 싶을 때가 있다.

테스트가 끝나면 자동으로 메모리에서 사라지기 때문에 테스트 후에는 확인할 수가 없고

테스트 중간에 디버그 포인트를 걸어서 확인하는 방법을 설명한다.

 

1. properties 확인

아래 세가지 h2에 대한 설정 값이 들어있어야 한다. 특히 web-allow를 true로 주는 게 중요하다.

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true

 

2. @SpringBootTest에 옵션 주기

webEnvironment의 기본 값은 MOCK이기 때문에 테스트 시 별도 포트를 사용하지 않는다.

우리는 테스트 서버를 띄우고 ui로 확인해야하기 때문에 물리적인 포트 할당이 필요하다.

아래와 같이 설정을 변경해준다.

@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)

 

3. 디버그 걸기

이렇게 까지 하고 디버그를 걸어도 h2 ui가 무한 로딩 중일 텐데, 디버그로 인해 모든 thread가 블로킹되었기 때문이다.

아래와 같이 디버그 옵션을 thread로 변경하여 해당 스래드만 멈추게 한다.

기본값이 All이라서 Thread로 바꿔주어야 한다.(매번 하기엔 좀 번거로울 수 있다.)

 

4. h2 console 확인

http://localhost:8080/h2-console

로 들어가면 아래와 같이 화면이 나온다. 

728x90
반응형

+ Recent posts