تحديد تغطية الاختبار في اختبارات تكامل Go
تهدف اختبارات التكامل إلى تقييم وظائف النظام ككل، غالبًا عن طريق السخرية أو التحكم التبعيات الخارجية. ومع ذلك، فإن تحديد التغطية الاختبارية لاختبارات التكامل يشكل تحديات فريدة.
قياس التغطية في الاختبارات غير المتعلقة بالحزم
في السيناريو الموصوف، تكون الاختبارات منفصلة عن الحزم يختبرون. وبناءً على ذلك، يُبلغ الأمر go test -cover عن تغطية بنسبة 0%. لمعالجة هذه المشكلة، يمكن للمرء استخدام التوجيه -coverpkg.
استخدام -coverpkg لتغطية الحزمة المحددة
يتيح التوجيه -coverpkg قياس تغطية الاختبار في نطاق محدد الحزمة، حتى لو كانت الاختبارات خارجية. يأخذ مسار الحزمة كوسيطة لها.
على سبيل المثال، يقيس الأمر التالي تغطية حزمة mypackage:
$ go test -cover -coverpkg mypackage ./src/api/...
يسمح هذا الأسلوب بالتحليل المستهدف لتغطية الحزمة في اختبارات التكامل.
مثال للتغطية الإخراج
فكر في مثال حيث تحتوي حزمة واجهة برمجة التطبيقات على اختبارات في main_test.go. معظم منطق الأعمال موجود في الحزمة mypackage. تنفيذ الأمر باستخدام -coverpkg يوفر تمثيلًا أكثر دقة للتغطية:
$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
يوضح هذا الإخراج أن الاختبارات تغطي 50.8% من العبارات في حزمة mypackage. في المقابل، بدون استخدام -coverpkg، ستظهر التغطية أعلى بنسبة 71.0%، وذلك بسبب اختبارات خارج الحزمة المحددة.
اعتبارات إضافية
الأمر يستحق مع ملاحظة أن اختبارات التكامل تغطي عادةً تعليمات برمجية أقل من اختبارات الوحدة نظرًا لتعقيد السخرية وطبيعة الاختبار على مستوى النظام. ومع ذلك، فإن النهج الموضح أعلاه يوفر طريقة لقياس التغطية الفعلية لاختبارات التكامل خصيصًا للحزم ذات الصلة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3