الاختبار في مسار C

تعلّم كيفية اختبار تمارين لغة C الخاصة بك على Exercism


كل تمرين يوفّر اختبارات الوحدة ووصفة بناء باستخدام Make. وأنت تقدّم التنفيذ.

صُمّم كل ملف اختبار ليُربط مع تنفيذك ويوفّر ملفًا تنفيذيًا في الطرفية يشغّل الاختبارات. وعند تشغيل الملف التنفيذي للاختبار، تُطبع رسائل لكل اختبار فاشل، ويُبلَّغ عن حالة خروج غير صفرية عند فشل الاختبارات.

للعمل على تمرين ما:

  • أنشئ البناء الأولي باستخدام Make
  • لكل اختبار وحدة:
    • احذف سطر TEST_IGNORE().
    • عالج أخطاء الترجمة حتى يفشل الاختبار.
    • نفّذ القدر الكافي فقط ليجتاز الاختبار.
    • أعد هيكلة تنفيذك لتحسين قابلية القراءة وتقليل التكرار وما إلى ذلك.

ترجمة الكود وتشغيل الاختبارات

كل تمرين يجلب معه ملف makefile إلى جانب ملف .c يحتوي على اختبارات الوحدة. لن تحتاج إلى تعديل ملف Make. يفترض ملف Make المرفق أن تنفيذك موجود في ملف ترويسة (.h) وملف مصدري (.c) يحملان اسم التمرين.

على سبيل المثال، يتوقع تمرين bob تنفيذًا في bob.h و bob.c. وفي التمارين التي تحتوي أسماؤها على شرطات، يُفترض أن تستخدم الملفات المصدرية شرطات سفلية، لذا يتوقع word-count الملفين word_count.h و word_count.c. وقد ترى أن تنفيذك بسيط بما يكفي ليكفي بالكامل في ملف الترويسة، وفي هذه الحالة يمكنك حذف ملف .c.

أنشئ ملفات التنفيذ الأولية قبل تشغيل Make. إذا لم تكن لديك الملفان bob.h و bob.c عند تشغيل Make لتمرين bob، فسيولّد Make خطأً مفاده أن الملفات غير موجودة. يمكن أن تكون هذه الملفات فارغة، لكن يجب أن تكون موجودة.

ابنِ الكود

أبسط طريقة لبناء الكود هي استخدام make من واجهة سطر الأوامر (CLI). على Linux تتوفر واجهة سطر الأوامر في bash أو ما شابهها، وعلى MacOS استخدم Terminal. وعلى Windows 10، يتوفر Bash الخاص بـ Windows Subsystem for Linux (WSL).

لفعل ذلك، بافتراض أن المجلد الحالي هو مجلد التمرين:

$ make

سيترجم هذا كودك ويشغّل الاختبارات.

يأتي makefile أيضًا ببناء يتحقق من بعض الأخطاء الشائعة المتعلقة بتسريب الذاكرة والوصول خارج حدود المصفوفات. لتشغيل هذه الفحوص، استخدم ما يلي من سطر الأوامر:

$ make memcheck

التنظيف

لتنظيف ما بعد البناء، يمكنك أن تطلب من make حذف كل مخرجات البناء، بما في ذلك الملف التنفيذي:

$ make clean

بديل البناء على MacOS

على MacOS يمكنك أيضًا استخدام Xcode. لبناء الكود، اختر Build من شريط الأدوات.