تشغيل وتصحيح اختبارات الوحدة باستخدام العلامات: معالجة ملحقات Protobuf المتعارضة
أثناء تصحيح أخطاء اختبارات الوحدة داخل VS Code، قد يكون من الضروري اجتيازها إشارات إضافية لحساب امتدادات Protobuf المتعارضة. يوفر هذا الدليل حلاً لهذه المشكلة، مما يسمح بتصحيح الأخطاء بسلاسة.
يحاول التكوين الأصلي في VS Code settings.json إضافة العلامة المطلوبة '-ldflags "-X google.golang.org/protobuf/reflect /protoregistry.conflictPolicy=warn"'. ومع ذلك، يواجه هذا التكوين مشكلة عندما يقوم VS Code بإنشاء أمر اختبار مع علامات اقتباس مفردة حول العلامة.
لحل هذه المشكلة، يلزم إجراء تعديل على التكوين في settings.json. يجب أن يزيل التعديل علامات الاقتباس المفردة من حول قيمة العلامة:
"go.testFlags": [ "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]
مع هذا التعديل، سيقوم VS Code بإنشاء أمر اختبار يتضمن العلامة الضرورية بشكل صحيح دون التسبب في الخطأ المرتبط بتعارضات الامتدادات الأولية.
لتصحيح الأخطاء، يوصى باتباع نهج مختلف نظرًا لـ تعقيدات تصحيح أخطاء اختبارات معينة باستخدام واجهة 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 plugin يسمح بإعداد نقطة توقف مخصصة واتصال dlv باستخدام أوامر مثل:GoDebugConnect 127.0.0.1:2345. من خلال اتباع الخطوات الموضحة أعلاه، يمكن للمطورين تشغيل اختبارات الوحدة وتصحيح الأخطاء باستخدام العلامات بشكل فعال، مما يضمن الاختبار السلس وصيانة التعليمات البرمجية.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3