كيف يمكنني الحصول على بيانات تغطية التعليمات البرمجية من الاختبارات الوظيفية لـ Python BDD باستخدام Behave؟

StackOverflow https://stackoverflow.com//questions/23019740

سؤال

لم أر إجابة لهذا السؤال المحدد (أداة تغطية الاختبار لإطار اختبار السلوك) ولم أر أي نتائج بحث في Google تنتج إجابة كافية.لذلك...

كيف يمكنني الحصول على تقرير تغطية الكود من Behave؟أجد صعوبة في تصديق أنه لا يوجد مطورو Python يستخدمون منهجية BDD وأجد صعوبة أكبر في تصديق أن مطوري Python الذين يستخدمون BDD يفعلون ذلك بدون إحصائيات تغطية التعليمات البرمجية من اختباراتهم الوظيفية.هل يمكن استخدام Coverage.py لدفع Behave لإنتاج تغطية التعليمات البرمجية؟كيف؟

هل كانت مفيدة؟

المحلول

لا أعرف كيفية استخدام التصرف، لكنني استخدمت الخيار ل BDD، والتي أعتقد أنها ربما تشبه تقريباوبعدوهكذا أعتقد أنه يجب أن تكون قادرا على استخدام التصرف مع التغطية.يجب عليك تحديد الملف الذي يجب تضمينه في الملف .. (اعتد عليه مع الخيار).معرفة ما إذا كان هذا قد يساعد.

آمل أن يكون هذا الإجابة سؤالك :)

giveacodicetagpre.

نصائح أخرى

متابعة من اقتراح ديفيد أعلاه.

على افتراض اختبار الكود الواجب اختباره في دليل التطبيقات، أضف ما يلي إلى .coveragerc file:

giveacodicetagpre.

من المحطة:

giveacodicetagpre.

يمكنك بعد ذلك استخدام تقرير التغطية أو تغطية HTML كالمعتاد.إذا كنت لا تحدد التطبيق Dir في ملف .coveragerc ، فستختبر التغطية جميع مكتبات Python المحلية لتثبيتك بالتصرف.

يمكن لـ Behave إنشاء بيانات تغطية Junit و حزمة التغطية يمكنه دمج هذه البيانات من عمليات تشغيل اختبار متعددة بالإضافة إلى إنتاج تقرير HTML يمكنك الاطلاع عليه أو نشره تلقائيًا في بيئة CI الخاصة بك.

فيما يلي العبارات التي أستخدمها حاليًا لإنتاج التغطية ودمجها والإبلاغ عنها باستخدام السلوك:

cd your/repo/tests  # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html

ال rm -rf behave-reports/* يزيل بقوة كل شيء داخل دليل السلوك/ التقارير بحيث أضمن إما تقرير تغطية جديدًا أو لا شيء على الإطلاق (مما يؤدي إلى فشل في CI، في حالتي).لاحظ أنه إذا قمت بإجراء اختباراتك محليًا، فستحتاج إلى إضافة إدخال إلى ملف .gitignore ملف (أو ما يعادله) حتى لا تقوم بإضافة نتائج الاختبار الخاصة بك والالتزام بها.

تشغيل التصرف مع --junit سوف تنتج مخرجات junit، في حين أن --junit-directory يخبرنا العلم بمكان كتابة بيانات junit على القرص.

جري coverage combine يأكل كل تغطية التعليمات البرمجية ويجمعها في ملف تغطية واحد.

أخيراً، coverage html ينتج تقرير HTML جميلًا يتضمن جميع بيانات التغطية المجمعة.

هناك خيار آخر، وهو استخدام التغطية لتشغيل البرنامج النصي الرئيسي لـ Bebe:

coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py

بالطبع سوف ترغب في تحديد في الخاص بك .coveragerc الملفات المصدر التي تريد تضمينها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top