عن المشروع
Catch2 هو إطار اختبار مكتوب للغة C++، يستهدف أساسًا اختبار الوحدة، لكنه يقدم أيضًا ميزات قياس أداء دقيق أساسية وماكروات بسيطة بأسلوب BDD. وتتمثل ميزته الرئيسية المعلنة في أن الاستخدام بسيط وطبيعي معًا: فلا حاجة لأن تكون أسماء الاختبارات معرّفات صالحة، وتبدو التأكيدات كتعبيرات منطقية عادية في C++، وتمنح الأقسام طريقة محلية لمشاركة كود الإعداد والتفكيك داخل الاختبارات.
يعرض ملف README مثالًا قصيرًا لاختبار وحدة باستخدام catch_test_macros.hpp، حيث تُفحص دالة factorial بتأكيدات REQUIRE داخل TEST_CASE باسم "Factorials are computed" موسوم بـ "[factorial]". ويوضح مثال ثانٍ القياس الدقيق للأداء: حيث يتحقق TEST_CASE موسوم بـ "[benchmark]" من قيم fibonacci ويلفّها في كتل BENCHMARK. ويشير README إلى أن المعايير لا تُشغَّل افتراضيًا ويجب تشغيلها صراحةً بوسم [!benchmark].
صدر الإصدار 3 ويجري تطويره على فرع devel. والتغيير الجوهري هو أن Catch2 لم يعد مكتبة أحادية الرأس؛ بل أصبح الآن يعمل كمكتبة عادية برؤوس متعددة وتنفيذ يُترجم بشكل منفصل. ويجري تحديث الوثائق لهذه التغييرات. ويجمع دليل الترحيل (docs/migrate-v2-to-v3.md) مشكلات الترحيل الشائعة وإرشادات البدء. ويعيش الإصدار الرئيسي السابق على فرع v2.x، ودعم C++11 موجود في v2.x بينما دعم C++03 على فرع Catch1.x؛ ويستهدف الخط الحالي C++14 وC++17 وما بعدهما.
تُقسَّم الوثائق إلى ثلاثة أجزاء: صفحة المبررات ("Why do we need yet another C++ Test Framework?")، وبرنامج تعليمي للبدء، وقسم مرجعي يضم كل التفاصيل. ويوجّه المشروع المستخدمين إلى متتبع مشكلات GitHub للإبلاغ عن الأخطاء، وإلى خادم Discord للنقاش والأسئلة، وإلى قوائم بالمستخدمين مفتوحي المصدر والتجاريين. وتغطي شارات حالة البناء Linux وmacOS وAppVeyor CI، إضافة إلى تغطية الكود، ويُقدَّم رابط "try it" عبر الإنترنت إلى Godbolt.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.