عن المشروع
بروتوكول رسائل Cucumber هو بروتوكول رسائل مصمم لتمثيل النتائج والمعلومات الأخرى من Cucumber. يهدف إلى فصل المكونات المختلفة لمنصة Cucumber، مما يوفر مزايا مثل احتياج كل مكون فقط إلى معرفة مجموعة فرعية من الرسائل، وفصل Gherkin عن مكون التنفيذ، وتمكين الدعم المستقبلي لتنسيقات أخرى مثل Markdown وExcel.
يتضمن البروتوكول تعريفات مخطط JSON لكل نوع رسالة، موجودة في دليل jsonschema، مع أوصاف مفصلة في messages.md. عند التخزين أو النقل، تُرمَّز الرسائل بتنسيق NDJSON (JSON مفصول بأسطر جديدة)، لتشكل تدفق رسائل حيث تكون كل رسالة عبارة عن Envelope.
يتم توليد التطبيقات الخاصة باللغات من مخططات JSON وتتوفر لـ .NET وDart وJava وJavaScript وPerl وPHP وPython وRuby. يتم إصدارها تلقائيًا لكل إصدار باستخدام polyglot-release.
يتم إصدار رسائل Cucumber بواسطة Cucumber-JVM 6.0.0+ وCucumber-Ruby 4.0.0+ وCucumber.js 7.0.0+ وReqnRoll 3.0.0+ باستخدام منسق الرسائل. لم يتم تنفيذ أدوات الإصدار للغات الأخرى بعد.
يعالج البروتوكول أوجه القصور في منسقي JSON وJUnit التاريخيين، بما في ذلك استهلاك الذاكرة العالي، وعدم وجود مخطط رسمي، والمعلومات المحدودة. يتيح البث المستمر لرسائل أصغر، مما يقلل استخدام الذاكرة ويسمح بالمعالجة في الوقت الفعلي. كما يتضمن معلومات أغنى مثل مصدر Gherkin الأصلي، وشجرة البنية المجردة، وتعريفات الخطوات، وأنواع المعلمات، وهي ضرورية للتقارير والتحليلات الغنية.
تتوفر أمثلة في مشروع compatibility-kit. تشمل الأدوات @cucumber/react، وهو مكون React لعرض رسائل Cucumber، يُستخدم داخليًا بواسطة Cucumber Reports.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.