প্রকল্প সম্পর্কে

কিউকাম্বার মেসেজ হলো কিউকাম্বারের ফলাফল ও অন্যান্য তথ্য উপস্থাপনের জন্য ডিজাইন করা একটি মেসেজ প্রোটোকল। এর লক্ষ্য হলো কিউকাম্বার প্ল্যাটফর্মের বিভিন্ন উপাদানকে আলাদা করা, যার সুবিধাগুলোর মধ্যে রয়েছে প্রতিটি উপাদানকে কেবল মেসেজের একটি উপসেট সম্পর্কে জানতে হওয়া, গারকিনকে এক্সিকিউশন উপাদান থেকে আলাদা করা, এবং ভবিষ্যতে মার্কডাউন ও এক্সেলের মতো অন্যান্য ফরম্যাটের জন্য সমর্থন সক্ষম করা। প্রোটোকলটিতে প্রতিটি মেসেজ টাইপের জন্য JSON Schema সংজ্ঞা রয়েছে, যা jsonschema ডিরেক্টরিতে অবস্থিত, এবং বিস্তারিত বর্ণনা messages.md-তে রয়েছে। সংরক্ষণ বা প্রেরণের সময়, মেসেজগুলো NDJSON (Newline Delimited JSON) হিসেবে এনকোড করা হয়, যা একটি মেসেজ স্ট্রিম তৈরি করে যেখানে প্রতিটি মেসেজ একটি Envelope। JSON স্কিমা থেকে ভাষা-নির্দিষ্ট ইমপ্লিমেন্টেশন তৈরি করা হয় এবং .NET, Dart, Java, JavaScript, Perl, PHP, Python ও Ruby-এর জন্য উপলব্ধ। polyglot-release ব্যবহার করে প্রতিটি সংস্করণের জন্য এগুলো স্বয়ংক্রিয়ভাবে রিলিজ করা হয়। কিউকাম্বার মেসেজগুলো Cucumber-JVM 6.0.0+, Cucumber-Ruby 4.0.0+, Cucumber.js 7.0.0+ এবং ReqnRoll 3.0.0+ দ্বারা message formatter ব্যবহার করে নির্গত হয়। অন্যান্য ভাষার জন্য এমিটার এখনো বাস্তবায়িত হয়নি। প্রোটোকলটি ঐতিহাসিক JSON ও JUnit ফরম্যাটারের shortcomings সমাধান করে, যার মধ্যে রয়েছে উচ্চ মেমরি ব্যবহার, আনুষ্ঠানিক স্কিমার অভাব এবং সীমিত তথ্য। এটি ছোট মেসেজের ধারাবাহিক স্ট্রিমিং সক্ষম করে, মেমরি ব্যবহার কমায় এবং রিয়েল-টাইম প্রসেসিংয়ের সুযোগ দেয়। এতে মূল গারকিন সোর্স, অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি, স্টেপ ডেফিনিশন এবং প্যারামিটার টাইপের মতো সমৃদ্ধ তথ্যও অন্তর্ভুক্ত, যা সমৃদ্ধ রিপোর্ট ও অ্যানালিটিক্সের জন্য অপরিহার্য। উদাহরণ compatibility-kit প্রকল্পে উপলব্ধ। ইউটিলিটিগুলোর মধ্যে রয়েছে @cucumber/react, কিউকাম্বার মেসেজ রেন্ডার করার জন্য একটি React কম্পোনেন্ট, যা কিউকাম্বার রিপোর্টস অভ্যন্তরীণভাবে ব্যবহার করে।