"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं वीएस कोड का उपयोग करके गो यूनिट परीक्षणों में परस्पर विरोधी प्रोटोबफ एक्सटेंशन को कैसे डिबग कर सकता हूं?

मैं वीएस कोड का उपयोग करके गो यूनिट परीक्षणों में परस्पर विरोधी प्रोटोबफ एक्सटेंशन को कैसे डिबग कर सकता हूं?

2024-11-07 को प्रकाशित
ब्राउज़ करें:223

How can I debug conflicting Protobuf extensions in Go unit tests using VS Code?

फ़्लैग के साथ यूनिट परीक्षण चलाएं और डीबग करें: परस्पर विरोधी प्रोटोबफ एक्सटेंशन से निपटना

वीएस कोड के भीतर यूनिट परीक्षण डीबग करते समय, इसे पास करना आवश्यक हो सकता है परस्पर विरोधी प्रोटोबफ़ एक्सटेंशन को ध्यान में रखते हुए अतिरिक्त झंडे। यह मार्गदर्शिका इस समस्या का समाधान प्रदान करती है, जो निर्बाध डिबगिंग की अनुमति देती है।

वीएस कोड सेटिंग्स.जेसन में मूल कॉन्फ़िगरेशन आवश्यक ध्वज '-ldflags'-X google.golang.org/protobuf/reflect को जोड़ने का प्रयास करता है। /protoregistry.conflictPolicy=warn"'। हालाँकि, इस कॉन्फ़िगरेशन में एक समस्या आती है जब वीएस कोड ध्वज के चारों ओर सिंगल कोट्स के साथ एक परीक्षण कमांड उत्पन्न करता है।

इसे हल करने के लिए, सेटिंग्स.जेसन में कॉन्फ़िगरेशन में समायोजन की आवश्यकता होती है। संशोधन को ध्वज मान के आसपास से एकल उद्धरण हटा देना चाहिए:

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

इस संशोधन के साथ, वीएस कोड एक परीक्षण कमांड उत्पन्न करेगा जिसमें प्रोटो एक्सटेंशन टकराव से जुड़ी त्रुटि पैदा किए बिना आवश्यक ध्वज को उचित रूप से शामिल किया जाएगा।

डीबगिंग के लिए, एक अलग दृष्टिकोण की सिफारिश की जाती है वीएस कोड इंटरफ़ेस का उपयोग करके विशिष्ट परीक्षणों को डीबग करने की जटिलताएँ। परीक्षण बाइनरी को विशिष्ट फ़्लैग के साथ संकलित करना और हेडलेस डिबगिंग के लिए डीएलवी का उपयोग करना अधिक नियंत्रण और कुशल डिबगिंग की अनुमति देता है।

परीक्षण बाइनरी संकलित करने के लिए:

go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"

यह कमांड डिबगिंग के लिए आवश्यक झंडे के साथ एक बाइनरी उत्पन्न करता है। संपादक कनेक्शन के लिए डीएलवी को हेडलेस मोड में कनेक्ट करने के लिए:

dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path

यहां, foo.test जेनरेट की गई बाइनरी है, -count=1 परीक्षण के लिए कस्टम फ़्लैग का प्रतिनिधित्व करता है, और $(pwd)/some/path का उपयोग ककड़ी-शैली के लिए किया जा सकता है परीक्षण. अपने संपादक को डीएलवी सत्र से कनेक्ट करें और डिबगिंग शुरू करें। -go प्लगइन :GoDebugConnect 127.0.0.1:2345 जैसे कमांड का उपयोग करके कस्टम ब्रेकपॉइंट सेटिंग और डीएलवी कनेक्शन की अनुमति देता है। ऊपर बताए गए चरणों का पालन करके, डेवलपर्स सुचारू परीक्षण और कोड रखरखाव सुनिश्चित करते हुए, फ़्लैग के साथ यूनिट परीक्षणों को प्रभावी ढंग से चला और डिबग कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3