플래그를 사용하여 단위 테스트 실행 및 디버깅: Protobuf 확장 충돌 해결
VS Code 내에서 단위 테스트를 디버깅하는 동안 다음을 통과해야 할 수 있습니다. 충돌하는 Protobuf 확장을 설명하기 위한 추가 플래그입니다. 이 가이드는 원활한 디버깅을 가능하게 하는 이 문제에 대한 솔루션을 제공합니다.
VS Code settings.json의 원래 구성에서는 필수 플래그 '-ldflags "-X google.golang.org/protobuf/reflect를 추가하려고 시도합니다. /protoregistry.contributePolicy=경고"'. 그러나 이 구성은 VS Code가 플래그 주위에 작은따옴표가 포함된 테스트 명령을 생성할 때 문제에 직면합니다.
이 문제를 해결하려면 settings.json의 구성을 조정해야 합니다. 수정하면 플래그 값 주위에서 작은따옴표를 제거해야 합니다:
"go.testFlags": [ "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]
이 수정을 통해 VS Code는 proto 확장 충돌과 관련된 오류를 일으키지 않고 필요한 플래그를 올바르게 포함하는 테스트 명령을 생성합니다.
디버깅의 경우 다음으로 인해 다른 접근 방식이 권장됩니다. VS Code 인터페이스를 사용한 특정 테스트 디버깅의 복잡성 특정 플래그로 테스트 바이너리를 컴파일하고 헤드리스 디버깅을 위해 dlv를 활용하면 더 효과적으로 제어하고 효율적으로 디버깅할 수 있습니다.
테스트 바이너리를 컴파일하려면:
go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
이 명령은 디버깅에 필요한 플래그가 포함된 바이너리를 생성합니다. 편집기 연결을 위해 헤드리스 모드에서 dlv를 연결하려면:
dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path
여기서 foo.test는 생성된 바이너리이고 -count=1은 테스트용 사용자 정의 플래그를 나타내며 $(pwd)/some/path는 오이 스타일에 사용할 수 있습니다. 테스트. 편집기를 dlv 세션에 연결하고 디버깅을 시작합니다.
추가 정보
Go는 또한 인라인 플래그를 통해 dlv를 시작하는 편리한 방법을 제공하며, Vim 사용자의 경우 vim -go 플러그인은 :GoDebugConnect 127.0.0.1:2345와 같은 명령을 사용하여 사용자 정의 중단점 설정 및 dlv 연결을 허용합니다. 위에 설명된 단계를 따르면 개발자는 플래그를 사용하여 단위 테스트를 효과적으로 실행 및 디버그하여 원활한 테스트 및 코드 유지 관리를 보장할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3