vscode에서 go 디버깅하는 법

차유림·2022년 7월 20일
0

vscode에서 go 코드 디버깅 하기

Extension 설치

우선, Go extension 설치가 필요하다.

테스트코드 디버깅

extension을 설치하면 테스트코드 함수위에 run test/debug test옵션이 생긴다.
debug test를 클릭하면 쉽게 디버깅을 시작할 수 있다.

패키지 디버깅

패키지는 main.go 파일에서 f5키를 누르면 디버깅이 시작된다.

yorkie 같은 경우에는 cobra 프레임워크를 사용해서 go cli 를 지원하고 있는데,
그냥 디버깅을 실행하면 bin/yorkie 이 실행되고 아래와 같이 프로그램이 종료된다.

yorkie server를 실행해서 디버깅을 하고 싶다면, bin/yorkie server 처럼 서버를 실행해야 한다.
즉, server argument 를 전달해줘야 하는데, config 파일에 작성하면 된다.

run and debug 에 보면 launch.json 파일을 생성할 수 있는데, Go: launch package를 선택한다.

program 에 실행할 폴더를 cmd/yorkie로 적어주고,
"args": ["server"] 를 추가한다.
(참고: https://github.com/microsoft/vscode-go/issues/3166)

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "cmd/yorkie",
      "args": ["server"]
    }
  ]
}

이렇게 파일 작성하고 f5키를 누르거나 ▶️ 버튼을 클릭하면 디버깅이 시작되고, yorkie 서버도 잘 실행된다.
추가로 yorkie 서버를 mongoDB와 연결하여 실행 하고 싶다면 args를 "args": ["server", "--mongo-connection-uri", "mongodb://localhost:27017"] 로 입력하면 된다.

추가(integration 테스트 디버깅)

동진님이 알려주신 integration 테스트 디버깅 방법

테스트 코드 디버깅 시에 익스텐션 설치 후에도 integration test 는 테스트코드 함수 위에 run test/debug test 옵션이 생기지 않는다.
vscode settings 에서 go tools env 검색 후 settings.json을 열고 그림과 같이 "GOFLAGS": "-tags=integration""go.toolsEnvVars" 에 추가해주면 run test/debug test 옵션이 integration test에도 생긴다.
(참고: https://hackandsla.sh/posts/2020-07-12-golang-integration-testing/)

profile
🎨프론트엔드 개발자💻

0개의 댓글