>  기사  >  백엔드 개발  >  VS Code에서 단위 테스트 실행 및 디버깅을 위해 `go.testFlags`를 구성하는 방법은 무엇입니까?

VS Code에서 단위 테스트 실행 및 디버깅을 위해 `go.testFlags`를 구성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-27 06:32:29516검색

How to Configure `go.testFlags` for Both Running and Debugging Unit Tests in VS Code?

VS Code에서 플래그를 사용하여 단위 테스트 디버깅

Visual Studio Code(VS Code)에서 단위 테스트를 실행할 때 다음이 필요할 수 있습니다. 추가 플래그를 포함합니다. 예를 들어, 테스트 중에 발생한 특정 오류를 해결하려면 -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.con conflictPolicy=warn" 플래그를 제공해야 합니다.

이 플래그를 설정하려면 VS Code의 경우 settings.json의 go.testFlags 구성을 다음과 같이 수정할 수 있습니다.

<code class="json">"go.testFlags": [
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]</code>

그러나 이 구성을 테스트 탐색기 또는 코드 렌즈 기능과 함께 사용하면 여전히 오류 메시지 패닉이 발생할 수 있습니다. : proto: 확장 번호 1042는 이미 google.protobuf.FileOptions 메시지에 등록되어 있습니다.

실행 및 디버그 테스트 구성의 차이점

go.testFlags 구성을 비교하여 테스트를 실행하고 디버그하는 동안 주요 차이점은 플래그 값의 형식에 있다는 사실이 발견되었습니다. 실행 테스트의 경우 플래그 값을 단일 큰따옴표(")로 묶어야 하고, 디버그 테스트의 경우 플래그 값을 작은따옴표(')와 큰따옴표(")로 묶어야 합니다. 이러한 구별은 VS Code에서 사용하는 기본 디버깅 도구 체인의 제한 사항이나 요구 사항으로 인해 발생할 수 있습니다.

권장 구성

실행 및 디버그 테스트 기능을 모두 수용하려면 각 시나리오에 대해 별도의 go.testFlags 구성을 정의하는 것이 좋습니다. 테스트 실행의 경우 다음 구성을 사용합니다.

<code class="json">"go.testFlags": [
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]</code>

디버그 테스트의 경우 다음 구성을 사용합니다.

<code class="json">"go.testFlags": [
    "-ldflags",
    "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
]</code>

추가 디버깅 고려 사항

보다 복잡한 디버깅 시나리오의 경우 dlv 디버거를 활용해야 할 수도 있습니다. -gcflags="all=-N -l"과 같은 추가 플래그를 사용하여 테스트 바이너리를 컴파일하고 헤드리스 dlv 세션을 시작하면 편집기를 디버깅 환경에 연결할 수 있습니다. VS Code의 경우 launch.json 파일을 열고 다음과 유사한 디버그 구성을 구성하면 됩니다.

<code class="json">{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Test",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "port": 2345,
            "host": "127.0.0.1",
            "showLog": true,
            "trace": "log"
        }
    ]
}</code>

이 구성을 사용하면 VS Code의 디버그 패널을 통해 원활한 디버깅이 가능합니다.

위 내용은 VS Code에서 단위 테스트 실행 및 디버깅을 위해 `go.testFlags`를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.