ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Intellij] Junit Test H2-Console 접속
    Intellij 2022. 1. 13. 22:26
    반응형

    이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다.

    틀리거나 잘못된 정보가 있을 수 있습니다.

    댓글로 알려주시면 수정하도록 하겠습니다.


    1. 발생 현상

    SpringBoot Junit5를 이용하여 JPA Test를 진행 중 실제 DB에 들어간 값을 확인하기 위해 BreakPoint를 찍고 h2 DB의 Web Console 화면으로 접속 시 무한 로딩이 발생하며 접속에 실패하는 현상이 발생하였습니다.

     

    즉 디버깅 중에는 h2 DB Console에 접속할 수 없는 현상이 발생하였습니다.

     

    2. 원인

    먼저 SpringBoot Test를 진행하면 SpringBoot가 실행되고 이후 Test 메소드가 실행됩니다.

     

    만약 Intellij의 BreakPoint 설정을 변경하지 않았다면 시스템 실행 시점이 BreakPoint를 만나면 BreakPoint가 있는 Thread만 멈추는 것이 아닌 모든 Thread(시스템 전체)가 멈추게 됩니다.

     

    하여 h2 DB가 동작하고 있는 Thread 또한 멈추게 되므로 Console에 접속 시 무한 로딩에 걸려 접속이 불가능하게 됩니다.

     

    3. 해결 방법

    Intellij 또는 다른 Tool의 경우에도 BreakPoint에 조건과 같은 여러 설정들을 할 수 있습니다.

     

    이 설정을 통해 모든 Thread가 작업을 일시 정지하는 것이 아닌 BreakPoint가 있는 Thread만 작업을 일시 중단할 수 있도록 설정하면 Test 메소드만 작업을 일시 중단하고 나머지 Thread는 정상 작업을 진행하도록 할 수 있습니다.

     

    위 이미지처럼 Test의 디버깅이 필요한 위치에 BreakPoint를 설정합니다.

     

    이후 BreakPoint에서 마우스 우클릭을 통해서 BreakPoint 설정 화면을 출력합니다.

     

    이 창에서 Radio 버튼 All 설정을 Thread로 변경합니다.

     

    이 작업으로 해당 BreakPoint는 시스템 전체가 일시 정지하는 것이 아닌 해당 BreakPoint가 있는 Thread만 작업을 일시 정지합니다.

     

    추후 생성되는 모든 BreakPoint에 대해서 해당 BreakPoint가 있는 Thread만 일시 정지하기를 원하신다면 Make Default 버튼을 통해 앞으로 생성되는 모든 BreakPoint를 해당 Thread만 일시 정지하도록 할 수 있습니다.

     

    저와 같은 삽질을 하지 않으셨으면 하는 마음으로 이 글을 작성하게 되었습니다.

     

    이상으로 이번 글을 마무리하도록 하겠습니다.

    반응형

    'Intellij' 카테고리의 다른 글

    [Intellij] Gradle 버전 업그레이드, 다운그레이드  (0) 2021.12.20

    댓글

Designed by Tistory.