توليد اختبارات الوحدة باستخدام عرض GitHub Copilot Chat
عرض الدردشة في تعليمة Visual Studio برمجية هو المكان الأساسي لإنشاء اختبارات الوحدات باستخدام GitHub Copilot. من خلال عرض الدردشة، يمكنك تكوين إطار اختبار، وتوليد اختبارات لملف أو اختيار، وتحسين النتائج حتى تتطابق الاختبارات مع تقاليد مشروعك. تركز هذه الوحدة على وضع الوكيل، الذي يكتب الاختبارات المولدة مباشرة في ملف اختبار، ويمكنه تشغيل الاختبارات الناتجة، ويقوم بتكرار الإخفاقات—وكل ذلك من خلال موجه دردشة واحد. يمكنك أيضا استخدام وضع السؤال مسبقا لاستكشاف خيارات الاختبار دون إجراء أي تغييرات في الملفات.
افتح عرض الدردشة
افتح عرض الدردشة باستخدام أحد الخيارين التاليين:
- اضغط Ctrl + Alt + I (Windows/Linux) أو Cmd + Alt + I (macOS).
- اختر أيقونة GitHub Copilot في شريط العنوان ثم اختر Toggle Chat.
يفتح عرض الدردشة في الشريط الجانبي الثانوي ويوفر ثلاثة خيارات تكوين تؤثر على كل تنبيه ترسله:
- العميل هدف: حيث يركض العميل. اختر Local لتشغيل الوكيل بشكل تفاعلي في المحرر مع وصول كامل إلى مساحة العمل والأدوات والنماذج.
- الوكيل: الدور الذي يتخذه الذكاء الاصطناعي خلال الجلسة. الوكلاء المحليون المدمجون هم Ask، Plan، وAgent.
- مستوى الأذن: مدى استقلالية الوكيل عند استدعاء الأدوات وأوامر الطرفية. الخيارات هي الموافقات الافتراضية، الموافقات على التجاوز، والطيار الآلي.
بالنسبة لتوليد اختبار الوحدات، نقطة البداية الموصى بها هي الوكيل ذو الموافقات الافتراضية. وضع الوكيل يمكنه تعديل الملفات، وتشغيل أوامر الطرفية، وإعادة تشغيل الاختبارات، لذا يمكنه أخذ تنبيه مثل "إنشاء اختبارات لهذه الطريقة" وإنتاج ملف اختبار يعمل لا تحتاج إلا إلى مراجعته. تبقيك الموافقات الافتراضية على اطلاع من خلال طلب تأكيد كل استدعاء للأداة.
اختياريا، استخدم وضع السؤال لاستكشاف خيارات الاختبار أولا
اطرح الأسئلة في وضع الأسئلة في الدردشة دون تعديل الملفات أو استدعاء الأدوات. وهذا يجعلها مناسبة عندما تريد التخطيط لنهج قبل أن تسمح للوكيل بتغيير أي شيء. استخدم وضع السؤال عندما ترغب في:
- قارن حالات الاختبار المرشحة لطريقة معقدة قبل الالتزام بهيكل معين.
- حدد الحالات الحدية والظروف الحدودية التي تستحق التغطية.
- احصل على توصية لإطار اختبار أو أسلوب إثبات للاختبار.
- شاهد اختبار مثال في الدردشة دون كتابته على القرص.
لاستخدام وضع السؤال للتحليل:
افتح عرض الدردشة واختر اسأل من اختيار الوكلاء.
ارفق الملف أو الاختيار المناسب كسياق (على سبيل المثال، مع
#selectionأو بسحب ملف إلى الداخل).اطرح سؤال تحليلي. على سبيل المثال:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.راجع الرد، ثم قم بتبديل مختارة الوكيل إلى الوكيل لتوليد الاختبارات الفعلية.
قم بإعداد إطار اختبار مع /setupTests
إذا لم يكن لدى مشروعك بعد إطار اختبار محدد، يمكن ل GitHub Copilot أن يوصي به ويشرح لك خطوات التكوين.
/setupTests أمر slash يعمل في أي وكيل، لكن وضع الوكيل يمكنه أيضا تثبيت الحزم وإنشاء مشروع الاختبار لك.
افتح عرض الدردشة واختر وكيل من أداة اختيار الوكلاء.
أدخل الأمر
/setupTestsفي حقل إدخال الدردشة.تأكد من استدعاءات الأدوات وأوامر الطرفية التي يقترحها الوكيل لتثبيت الحزم، ودعم مشروع الاختبار، والتوصية بتوسعات اختبار تعليمة Visual Studio برمجية.
/setupTests يكون أكثر فائدة عندما تبدأ مشروع اختبار جديد أو تبدأ في مشروع لا يتضمن اختبارات بعد.
توليد اختبارات باستخدام /tests
/tests أمر slash يولد اختبارات وحدة للكود النشط حاليا في المحرر. في وضع الوكيل، تكتب الاختبارات المولدة مباشرة في ملف اختبار مناسب. يكتشف GitHub Copilot إطار الاختبار الحالي وأسلوب البرمجة وينتج اختبارات تطابق النتائج.
لإنشاء اختبارات لملف كامل:
افتح ملف كود التطبيق الذي تريد اختباره.
افتح عرض الدردشة وتأكد من أن الوكيل قد تم اختياره.
في حقل إدخال الدردشة، أدخل
/testsثم أي إرشادات إضافية. على سبيل المثال:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.تأكد من استدعاءات الأداة التي يستخدمها الوكيل لقراءة السياق، وكتابة الاختبارات، و(اختياريا) تشغيلها.
راجع التغييرات التي طبقها الوكيل.
يقوم الوكيل بإضافة الاختبارات إلى ملف اختبار موجود عندما يكون متاحا، أو ينشئ ملف اختبار جديد في الموقع المناسب. يظهر الفرق في المحرر حتى تتمكن من التحقق من كل تغيير.
اختر الاحتفاظ أو التراجع لقبول أو إلغاء التغييرات.
لإنشاء اختبارات لطريقة معينة أو كتلة من الكود:
افتح ملف كود التطبيق.
اختر الطريقة أو الكتلة التي تريد اختبارها.
في عرض الدردشة، أدخل
/testsمتبوعا بالتوجيه الذي يشير إلى الاختيار. على سبيل المثال:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.راجع التغييرات الناتجة واحتفظ بها أو تخلص منها.
توليد اختبارات باستخدام موجه باللغة الطبيعية
لا تحتاج لاستخدام أمر القطع. يقوم الوكيل بإنشاء اختبارات من مطالبات اللغة الطبيعية عندما تضيف سيقا كافيا. أمثلة:
- "أنشئ اختبارات xUnit للطرق في هذا الملف وأضفها إلى مشروع Calculator.Test."
- "اكتب اختبارات الوحدة للطريقة
CalculateDiscount، بما في ذلك الحالات الطرفية للقيم السالبة والصفر. قم بإجراء الاختبارات بعد كتابتها." - "أنشئ اختبارات تكامل لطبقة الوصول إلى البيانات في هذه الوحدة."
نظرا لأن الوكيل يمكنه تشغيل الأوامر، يمكنك تضمين خطوات التحقق في نفس الطلب. طلب إجراء الاختبارات بعد كتابتها من الوكيل يسمح له باكتشاف وتصحيح الأعطال الواضحة قبل إعادة العمل إليك.
أضف السياق إلى محفزاتك
جودة الاختبارات المولدة تعتمد على السياق الذي تقدمه. استخدم واحدا أو أكثر من الخيارات التالية لإضافة السياق إلى عرض الدردشة:
- زر إضافة السياق : افتح خيار اختيار سريع لإضافة ملفات، مجلدات، رموز، أو اختيار المحرر الحالي.
- سحب وإفلات: اسحب الملفات من عرض المستكشف، أو اسحب تبويب المحرر إلى عرض الدردشة لإرفاق المحتويات.
-
#الذكر: اكتب#متبوعا باسم ملف أو مجلد أو رمز لإضافته كسياق. استخدم#selectionلإرفاق اختيار المحرر الحالي، أو#codebaseللسماح GitHub Copilot بالبحث في مساحة العمل عن السياق ذي الصلة. - الملفات الخارجية: افتح ملفات markdown (على سبيل المثال، إرشادات المساهمين أو قواعد الاختبار) في المحرر وأرفقها عبر إضافة سياق. يستخدم الوكيل المحتوى لتشكيل الاختبارات المولدة.
على سبيل المثال، إذا كانت طريقة واحدة مرئية في المحرر، يمكنك أن تسأل: Write a unit test for the method in #editor. إذا كانت عدة طرق مرئية أو امتدت الطريقة المستهدفة إلى ما هو أبعد من المنطقة المرئية، اختر الرمز أولا واسأل: #selection write unit tests for the selected code.
مراجعة وتحسين تغييرات الوكيل
حتى وإن كتب الوكيل الاختبارات مباشرة في مشروع الاختبار الخاص بك، فأنت تظل مسيطرا:
- راجع الفرق: كل ملف يغيره الوكيل يفتح في المحرر مع تمييز التعديلات المقترحة. تمر عبر الفرق قبل أن تقبله.
- الاحتفاظ أو التراجع: استخدم الاحتفاظ لقبول التغييرات، أو التراجع لإرجاعها. يمكنك أيضا التراجع عن القطع الفردية من المحرر.
- البناء والتشغيل: بعد الاحتفاظ بالتغييرات، قم ببناء مشروع الاختبار وتشغيل الاختبارات من مستكشف الاختبار أو الطرفية للتأكد من أن كل شيء يترجم ويجتاز الاختبار.
- التكرار: استخدم التعليمات المتابعة في نفس جلسة الدردشة لتحسين اختبارات محددة، إضافة حالات أكثر، أو إعادة تسمية الطرق.
تخصيص توليد الاختبارات باستخدام تعليمات مخصصة
إذا كانت مؤسستك لديها متطلبات اختبار محددة، يمكنك تخصيص كيفية إنشاء GitHub Copilot للاختبارات بحيث يتوافق الناتج مع معاييرك. التعليمات المخصصة تتيح لك :
- حدد أطر الاختبار المفضلة (على سبيل المثال، xUnit بدلا من NUnit).
- حدد قواعد التسمية لفئات وطرق الاختبار.
- حدد تفضيلات هيكل الكود مثل نمط Arrange-Act-Assert.
- اطلب أنماط اختبار محددة، مثل الاختبارات المعدلة لقيم الحدود.
تخزين التعليمات المخصصة في ملف *.instructions.md في مساحة العمل الخاصة بك. استخدم حقل البيانات الوصفية applyTo لتطبيق التعليمات فقط على ملفات الاختبار. على سبيل المثال، قيمة تحدد applyTo: tests/** نطاق التعليمات إلى الملفات في tests/ الدليل. مشاركة الملف في نظام التحكم المصدري تعطي كل مطور في الفريق نفس سياق الاختبار.
هام
قد لا تغطي حالات الاختبار المولدة كل السيناريوهات. لا تزال المراجعة اليدوية ومراجعة الكود مطلوبة لضمان جودة اختباراتك.