بيثون BDD مقارنة الإطار: إيجابيات وسلبيات

مرحبا بالجميع. بالفعل هذا الشهر ، تبدأ دورة Python QA Engineer في OTUS. تحسبا لبدء هذه الدورة ، فإننا نشارككم ترجمة مواد مثيرة للاهتمام.



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


تتصرف


تتصرف هي واحدة من أطر BDD بيثون الأكثر شعبية. على الرغم من أنها ليست جزءًا رسميًا من مشروع Cucumber ، إلا أن وظائفه تشبه إلى حد بعيد إطار عمل Cucumber.


مصادر:



شعار



الايجابيات:


  • تؤيد تأييدا كاملا لغة غيركين ؛
  • وظيفة البيئة والتركيبات تجعل التثبيت والإزالة سهلة ؛
  • هناك تكامل مع Django و Flask.
  • شعبية مع بيثون BDD.
  • وثائق جيدة وكتيبات.
  • هناك دعم ل PyCharm Professional Edition .

سلبيات:


  • لا يوجد أي دعم للتنفيذ المتوازي ، وهذا يتطلب إطار عمل منفصل موازٍ ؛
  • التصرف هو إطار مستقل ؛
  • يمكن أن تكون مشاركة الخطوات بين ملفات الميزات مزعجة.

pytest-بدد


pytest-bdd هو ملحق pytest يسمح للمستخدمين بكتابة الاختبارات كملفات ميزات Gherkin بدلاً من وظائف الاختبار. نظرًا لأنه مدمج في pytest ، يمكنه العمل مع أي ملحقات pytest أخرى ، مثل pytest-html لإنشاء تقارير جميلة و pytest-xdist للاختبار الموازي. كما يستخدم تركيبات pytest لحقن التبعيات.


مصادر:



شعار



الايجابيات:


  • متوافق تماما مع pytest والإضافات الرئيسية ؛
  • يمكنك التمتع بجميع فوائد مجتمع pytest.
  • تعتبر التركيبات طريقة رائعة لإدارة السياق بين الخطوات ؛
  • يمكن تصفية الاختبارات وتشغيلها مع اختبارات pytest الأخرى ؛
  • يمكن مشاركة تعريفات الخطوة والربط بسهولة باستخدام conftest.py؛
  • يمكن معالجة البيانات المجدولة بشكل أفضل للاختبارات التي تعتمد على البيانات ؛
  • وثائق و دروس تعليمية ممتازة عبر الإنترنت ؛
  • هناك دعم ل PyCharm Professional Edition .

سلبيات:


  • يجب أن تحتوي وحدات تعريف الخطوة على إعلانات واضحة لملفات الميزات (عبر "scenario" أو وظيفة "السيناريوهات") ؛
  • يجب معالجة خطة السيناريو بشكل مختلف.

فجل


الفجل هو إطار عمل BDD مميز: فهو يضيف بناء جملة جديد إلى لغة Gherkin. تجعل ميزات اللغة مثل حلقات البرنامج النصي ومتطلبات البرنامج النصي والثوابت الفجل الخاص بـ Gherkin أكثر برمجية لحالات الاختبار.


مصادر:



شعار



الايجابيات:


  • تتيح امتدادات لغة Gherkin للمختبرين كتابة الاختبارات بشكل أفضل ؛
  • الموقع والوثائق والشعار - كل شيء في مكانه ؛
  • ملفات الميزات وتعريفات الخطوة واضحة للغاية.

سلبيات:


  • إنه إطار قائم بذاته مع عدد محدود من الامتدادات ؛
  • قد لا يحب الأصوليون BDD إضافة بناء جملة Gherkin.

الخس


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


مصادر:



الشعار:



الايجابيات:


  • رمز بسيط
  • التحقق وجيدة.

سلبيات:


  • ليس وظيفة غنية كما هو الحال في الأطر الأخرى ؛
  • يبدو أنه ليس لديه دعم مستمر نشط.

تعيش


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


توصيات


لا يوجد أي من الأطر المذكورة أعلاه مثالية ، ولكن العديد منها يتمتع بمزايا كبيرة. بشكل عام ، أوصي باستخدام pytest-bdd ، لأنه يحتوي على جميع مزايا نقاط القوة في pytest. أعتقد أن pytest هو واحد من أفضل الأطر للاختبار في أي لغة بسبب إيجازه ومواعيده وتأكيداته وإضافاته. كشف مسح مطورو بايثون 2018 أن pytest هو إطار الاختبار الأكثر شعبية لبيثون. على الرغم من حقيقة أن pytest-bdd لا تبدو مصقولة كما لو كانت تتصرف ، أعتقد أن بعض TLCs من مجتمع المصادر المفتوحة يمكنهم إصلاح ذلك.
وبعض التوصيات الأخرى:


  • استخدم سلوكك إذا كنت بحاجة إلى تجربة تنمية موثوقة ونظيفة ومجتمع كبير.
  • استخدم pytest-bdd إذا كنت بحاجة إلى التكامل مع المكونات الإضافية الأخرى التي تحتوي بالفعل على مجموعة من اختبارات pytest ، أو إذا كنت بحاجة إلى تشغيل الاختبارات على التوازي.
  • استخدم الفجل إذا كنت تريد مزيدًا من التحكم في البرنامج للاختبار على مستوى Gherkin.
  • لا تستخدم الخس والطازجة.

ما هو إطار BDD المفضل لديك؟ يرجى حصة في التعليقات!

Source: https://habr.com/ru/post/ar460046/


All Articles