ما هو Coverage.py
Coverage.py هو أداة قوية لتحليل تغطية الكود بالاختبارات في Python، تتيح للمطورين معرفة أي أجزاء من الكود تم تنفيذها أثناء الاختبارات وأيها لم يتم استخدامها. هذه الأداة جزء أساسي من عملية ضمان جودة الكود وتساعد في اكتشاف المشكلات المحتملة في تغطية الاختبارات.
الهدف الرئيسي لـ Coverage.py هو تقديم معلومات تفصيلية حول مدى شمولية اختباراتك للكود المكتوب. تقوم الأداة بتحليل تنفيذ البرنامج وإنشاء تقارير توضح نسبة التغطية لكل ملف أو وحدة أو حتى أسطر فردية من الكود.
الميزات الرئيسية لـ Coverage.py
يوفر Coverage.py مجموعة واسعة من الوظائف لتحليل تغطية الكود:
قياس تغطية الأسطر — الوظيفة الأساسية التي تتعقب أي أسطر الكود تم تنفيذها أثناء الاختبارات.
تحليل الفروع — وظيفة متقدمة تتحقق مما إذا تم تنفيذ جميع المسارات الممكنة في الهياكل الشرطية (if, elif, else).
إنشاء التقارير — إنتاج تقارير مفصلة بتنسيقات متعددة: نصي، HTML، XML، JSON.
التكامل مع أطر العمل — عمل سلس مع أطر الاختبارات الشهيرة مثل pytest وunittest وnose.
إعداد الاستثناءات — إمكانية استبعاد ملفات أو مجلدات أو أسطر معينة من تحليل التغطية.
التثبيت والإعداد الأولي
التثبيت القياسي
لتثبيت Coverage.py استخدم pip:
pip install coverage
التثبيت مع ميزات إضافية
إذا كنت تعمل مع pytest، يُنصح بتثبيت الإضافة pytest-cov:
pip install pytest-cov
للعمل مع ملفات الإعدادات toml:
pip install coverage[toml]
التحقق من التثبيت
بعد التثبيت، تأكد من أن Coverage.py يعمل بشكل صحيح:
coverage --version
الأوامر الأساسية واستخدامها
تشغيل تحليل التغطية
تشغيل تحليل التغطية الأساسي لسكريبت Python:
coverage run my_script.py
التشغيل مع معاملات إضافية:
coverage run --source=my_package my_script.py
التشغيل مع وحدة unittest
coverage run -m unittest discover
التشغيل مع pytest
coverage run -m pytest
أو باستخدام pytest-cov:
pytest --cov=my_module tests/
عرض تقرير التغطية
التقرير النصي في الطرفية
coverage report
مثال على المخرجات:
Name Stmts Miss Cover
----------------------------------------
my_module.py 25 3 88%
utils.py 15 0 100%
main.py 20 5 75%
----------------------------------------
TOTAL 60 8 87%
تقرير مفصل مع الأسطر المفقودة
coverage report --show-missing
تقرير HTML
coverage html
بعد تنفيذ الأمر، افتح الملف htmlcov/index.html في المتصفح لعرض التقرير التفاعلي.
تقرير XML لـ CI/CD
coverage xml
تقرير JSON
coverage json
إدارة بيانات التغطية
مسح البيانات
أيضاً في المكتبة
توصيات