[컴] spring boot project 를 vscode 에서 실행하기

springboot / vscode 에서 java 사용 / --debug-jvm / unittest system.out / stdout 출력

spring boot project 를 vscode 에서 실행하기

잠깐 써본 소감은 'Language Support for Java' 의 memory 를 max 2G까지 올렸는데, 그래서인지 메모리를 많이 잡아먹었다. 그러나, IntelliJ를 사용할때와 비슷한 수준이었다.

설치한 vscode extension

‘Language Support for Java’ 에 대한 java home 설정

여기선 workspace setting 을 변경했다.

// myproj.code-workspace
{
    "folders": [
        {
            "path": ".."
        }
    ],
    "settings": {
        "java.jdt.ls.java.home": "d:\\a\\appss\\jdk-17.0.6.10-hotspot"
    }
}

gradle extension 에서 실행

아래 그림처럼 gradle 의 task 를 실행할 수 있다. 여기서 debugger 를 run 하거나, 그냥 run 하거나 할 수 있다.

vscode 화면

개별 class test 시 debug mode

아직은 gradle extension 에서 개별 class의 test 에 대한 debug mode run 은 지원이 안된다.

그래서 다음과 같은 방법으로 gradle test 에 debugger 를 붙일 수 있다.

  1. vscode 내부 터미널에서 다음처럼 gradle test 를 실행하고,
gradlew test --tests co.my.pro.MyTests --debug-jvm
  1. 아래처럼 launch.json을 설정해서 debugger를 실행(f5)시킨다.
// launch.json
{
    "version": "0.2.0",
    "configurations": [
        
        {
            "type": "java",
            "request": "attach",
            "name": "Attach by Process ID",
            "processId": "${command:PickJavaProcess}"
        }
    ]
}
  1. 그러면 process 를 선택하면 된다.

--debug-jvm : Testing in Java & JVM projects

console log

testLogging.showStandardStreams = true 을 해주면, log 가 stdout 으로 찍힌다.

events=["passed", "failed", "skipped", "standard_out", "standard_error"]

로 설정하는 것은

events=["passed", "failed", "skipped"]
showStandardStreams = true

과 같다. showStandardStreamsevents=["standard_out", "standard_error"] 과 같다. 위와 같이 설정하면 2개가 동시에 적용된다.


test {
    useJUnitPlatform()

    // set systemProperties with default value "spring.profiles.active=test"
    systemProperties = System.properties
    if (!systemProperties.containsKey('spring.profiles.active')) {
        systemProperty("spring.profiles.active", "test")
    }

    testLogging { 
        events=["passed", "failed", "skipped", "standard_out", "standard_error"]
        // events=["passed", "failed", "skipped"]
        // showStandardStreams = true
    }
}

See Also

  1. Run and Debug Java in Visual Studio Code
  2. 쿠…sal: [컴][자바] vscode 에서 java 사용하기, 2017-02
  3. Debugging doesn't work · Issue #876 · microsoft/vscode-gradle · GitHub

댓글 없음:

댓글 쓰기