البرمجة

تحسين تجربة كتابة الاختبارات باستخدام PyCharm

في هذا المقال، سأشرح كيفية الحصول على تلميحات التعبئة التلقائية (Autocomplete) في PyCharm عند استخدام أدوات الإصلاح (fixtures) في PyTest، وذلك باستخدام تعليمات الكتابة المحددة (Type hinting).

المشكلة الأساسية تتمثل في أنه في بعض الأحيان، وليس دائمًا، عند التعامل مع أدوات الإصلاح في PyTest التي تعيد كائنات، عند استخدام هذه الأدوات في اختبار في PyCharm، قد لا تحصل على تلميحات التعبئة التلقائية. إذا كان لديك كائنات تحتوي على أعداد كبيرة من الأساليب التي ترغب في الإشارة إليها أثناء كتابة الاختبار، فقد يضيف ذلك الكثير من العبء والإزعاج إلى عملية كتابة الاختبار.

في المثال التوضيحي التالي، سأقوم بإظهار المشكلة وكيفية حلها:

لنفترض أن لدي فئة تسمى “event_manager” تقع في:

location.game.events

وفي ملف conftest.py (شيء قياسي في PyTest لمن لا يعرف)، لدي أداة إصلاح تعيد مثيلًا لتلك الفئة:

python
from location.game.events import event_manager ... @pytest.fixture(scope="module") def event_mgr(): """Creates a new instance of event generate for use in tests""" return event_manager()

لقد واجهت مشاكل أحيانًا (ولكن ليس دائمًا – لا أستطيع تحديد السبب بالضبط) مع الفئات مثل هذه حيث لن تعمل التعبئة التلقائية بشكل صحيح في كود الاختبار حيث أستخدم الأداة، مثل:

python
def test_tc10657(self, evt_mgr): """Generates a Regmod and expects filemod to be searchable on server""" evt_mgr.(This does not offer autocomplete hints when you type ".")

إذاً، الحل في الواقع بسيط جدًا، بمجرد مراجعة التعليمات الخاصة بالكتابة في PyCharm:

Type hinting in PyCharm

هكذا يمكنك إصلاح كود الاختبار أعلاه لتعمل التعبئة التلقائية بشكل صحيح:

python
from location.game.events import event_manager ... def test_tc10657(self, evt_mgr: event_manager): """Generates a Regmod and expects filemod to be searchable on server""" evt_mgr.(This DOES offer hints when you type "." Yay!)

لاحظ كيف أنني أنوياً نوعت الأداة كمعلمة إدخال من نوع event_manager.

بهذا، يمكنك الآن الاستمتاع بتلميحات التعبئة التلقائية في PyCharm عند استخدام أدوات الإصلاح في PyTest، مما يجعل عملية كتابة الاختبار أكثر سهولة وفاعلية.

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

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

الحل الذي تم ذكره أعلاه، والذي يتمثل في استخدام التلميحات النوعية لتحديد نوع الـ fixture، يمكن أن يكون له تأثير كبير على تجربة البرمجة وسرعة تطوير البرنامج. لكن هناك أيضًا بعض النقاط الأخرى التي يمكن مراعاتها لتعزيز تجربة البرمجة الخاصة بك بشكل عام:

  1. استخدام تعليمات الدالة docstrings بشكل جيد: تعليمات docstrings هي تلك النصوص التوضيحية التي تأتي مع دوال Python والتي تبدأ عادة بثلاث علامات تنصيص مزدوجة ("""). بتوثيق الدوال والموديلات الخاصة بك بشكل جيد، يمكن أن يسهم ذلك في تحسين تجربة البرمجة الخاصة بك وفهم الأساليب والمتغيرات المتاحة.

  2. الاستفادة من إمكانيات PyCharm الأخرى: بالإضافة إلى التلميحات النوعية، توفر PyCharm العديد من الميزات الأخرى التي يمكن استخدامها لتعزيز إنتاجية المطور، مثل البحث الذكي، والاكتشاف التلقائي للأخطاء، والإصلاحات الذكية، والمزيد.

  3. مشاركة المعرفة: عند مواجهة مشكلة ما وايجاد الحل لها، يمكن مشاركة هذا الحل مع المجتمع. من خلال كتابة مقال مثل هذا، يمكن أن تساهم في حل مشكلة الآخرين وتسهيل عملية التطوير بشكل عام.

  4. متابعة التحديثات: ينبغي دائماً متابعة تحديثات أدوات التطوير والإطارات البرمجية لضمان الاستفادة من أحدث الميزات وإصلاح المشاكل المعروفة.

  5. التعلم المستمر: عالم التطوير البرمجي متغير بسرعة، لذا يجب أن تكون على استعداد لمواكبة هذه التغييرات من خلال التعلم المستمر واكتساب المهارات الجديدة.

باستخدام هذه النصائح، يمكنك تعزيز تجربتك في البرمجة وزيادة إنتاجيتك وجودة البرمجيات التي تقوم بتطويرها.

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر