البرمجة

تخصيص مستوى التسجيل في وحدات الاختبار باستخدام unittest في Python

في إطار عملك مع وحدات الاختبار (unittest) في Python، قد تكون واجهتك مع ضبط مستوى التسجيلات (logging) أمرًا محيرًا، خاصةً إذا كنت ترغب في تحديد مستوى التسجيلات لجميع المسجلات (loggers) أثناء تشغيل الاختبارات. يبدو أن unittest يعيد تعيين مستوى التسجيل الافتراضي إلى WARNING لجميع المسجلات، ولكنك ترغب في الحفاظ على نفس إعدادات التسجيل عند تشغيل التطبيق. لذا، كيف يمكنك تحقيق هذا؟

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

على سبيل المثال، يمكنك تشغيل اختبارك باستخدام الأمر التالي:

bash
python -m unittest your_test_module.py -v --log-level=INFO

هنا، قمت بتحديد مستوى التسجيل إلى INFO من خلال --log-level.

ومن داخل وحدة الاختبار، يمكنك إجراء ذلك بالشكل التالي:

python
import unittest import logging class YourTestCase(unittest.TestCase): @classmethod def setUpClass(cls): super().setUpClass() logging.basicConfig(level=logging.INFO) # تحديد مستوى التسجيل هنا def test_something(self): # اختبارك هنا pass

هذا يحدد مستوى التسجيل إلى INFO عند بدء تشغيل الاختبارات.

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

المزيد من المعلومات

بالطبع، دعونا نعزز المعلومات حول تخصيص مستوى التسجيلات في وحدات الاختبار (unittest) بشكل أكبر.

  1. استخدام مكتبة logging في Python:
    يتيح لنا استخدام مكتبة logging في Python تحقيق التحكم الكامل في التسجيلات. يمكنك تكوين المسجلات وتعيين مستويات التسجيل بحرية تامة. على سبيل المثال، يمكنك إعداد ذلك في ملف تكوين خاص (logging.conf) واستخدامه عند تشغيل الاختبارات.

  2. استخدام الزيادات في سطر الأوامر:
    يمكنك تحديد مستوى التسجيلات مباشرة من خلال سطر الأوامر عند تشغيل الاختبارات باستخدام مفتاح --log-level، كما تم الذكر في الرد السابق. يُفضل تحديد مستوى التسجيل حسب احتياجات اختباراتك.

  3. التعامل مع مستويات التسجيل داخل الاختبارات:
    يمكنك تحديد مستوى التسجيل داخل وحدة الاختبار نفسها باستخدام basicConfig كما تم ذكره سابقًا. يمكنك أيضًا استخدام unittest.TestCase لتكوين تسجيلات مخصصة لكل اختبار.

python
import unittest import logging class YourTestCase(unittest.TestCase): @classmethod def setUpClass(cls): super().setUpClass() logging.basicConfig(level=logging.INFO) # تحديد مستوى التسجيل هنا def test_something(self): # اختبارك هنا pass
  1. الحفاظ على اعدادات التسجيل الأصلية:
    قد يكون هناك حاجة للحفاظ على إعدادات التسجيل الأصلية للتطبيق أثناء تشغيل الاختبارات. في هذه الحالة، قد تحتاج إلى حفظ إعدادات التسجيل الحالية واسترجاعها بعد انتهاء الاختبار.

  2. تكامل مع أدوات إطار الاختبار:
    يمكنك أيضًا استكشاف إمكانية تكامل مع أدوات إطار الاختبار الخاصة بك لتحديد مستوى التسجيلات بشكل ديناميكي وفقًا للاحتياجات الخاصة بكل اختبار.

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

زر الذهاب إلى الأعلى