"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تشغيل اختبارات الوحدة باستخدام العلامات المخصصة في VS Code؟

كيفية تشغيل اختبارات الوحدة باستخدام العلامات المخصصة في VS Code؟

تم النشر بتاريخ 2024-11-18
تصفح:120

How to Run Unit Tests with Custom Flags in VS Code?

تشغيل اختبارات الوحدة باستخدام العلامات المخصصة

في Visual Studio Code (VS Code)، يمكنك مواجهة تحديات تشغيل اختبارات الوحدة وتصحيح الأخطاء عندما تحتاج إلى توفير أعلام محددة. دعنا نتعمق في المشكلة ونقدم حلاً شاملاً.

نظرة عامة على المشكلة

عند تشغيل اختبارات الوحدة من VS Code، قد يحتاج المستخدمون إلى تحديد علامات مخصصة، مثل - ldflags في المثال المقدم. ومع ذلك، فقد واجهوا صعوبات عند دمج هذه العلامات في مشغل اختبار VS Code.

تكوينات العمل

من خلال التجربة، تم اكتشاف أن هناك حاجة إلى تكوينين منفصلين لـ تحقيق كل من وظيفة اختبار التشغيل واختبار التصحيح:

  • تشغيل الاختبار:

    "go.testFlags": [ "-ldflags"، "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]
    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
  • اختبار التصحيح:

    "go.testFlags": [ "-ldflags"، "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'" ]
    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
المشكلة الأساسية

يكمن سبب التكوينات المختلفة في كيفية إنشاء VS Code لأمر الاختبار. عند تصحيح الأخطاء، يضيف VS Code معلمات إضافية إلى الأمر، مما يؤثر على طريقة تفسير العلامات. على هذا النحو، تعد علامات الاقتباس المفردة في تكوين تصحيح الأخطاء ضرورية لضمان تمرير العلامات بشكل صحيح.

الحل المحتمل

هناك طريقة بديلة مقترحة لتصحيح أخطاء الاختبارات المعقدة هي لتجميع الاختبار الثنائي وبدء جلسة تصحيح أخطاء dlv. وهذا يسمح بتحكم أفضل في تنفيذ الاختبار وتجربة تصحيح الأخطاء.

استخدام dlv لتصحيح الأخطاء

توضح الخطوات التالية كيفية استخدام dlv لاختبارات وحدة التصحيح:

قم بتجميع ثنائي الاختبار مع العلامات الضرورية، مثل:
  1. go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy =warn" -gcflags="all=-N -l"

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
    بدء جلسة dlv بدون رأس:
  2. dlv exec ./foo.test --headless -- استمع=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
    في VS Code، افتح تكوين التشغيل الملف (التصحيح: افتح Launch.json). أنشئ تكوينًا مشابهًا لما يلي:
  3. { "الإصدار": "0.2.0"، "التكوينات": [ { "الاسم": "اختبار التصحيح"، "اكتب": "اذهب"، "طلب": "إرفاق"، "الوضع": "عن بعد"، "المنفذ": 2345، "المضيف": "127.0.0.1"، "showLog": صحيح، "تتبع": "سجل" } ]

    {
     "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"
         }
     ]
    }
  4. قم بتشغيل تكوين تصحيح الأخطاء (تصحيح الأخطاء: افتح Launch.json) لبدء تصحيح الأخطاء.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3