تست در مسیر C

یاد بگیرید چگونه تمرین‌های C خود را در Exercism تست کنید


هر تمرین testهای واحد و یک دستور ساخت Make را در اختیار شما قرار می‌دهد. پیاده‌سازی را خودتان می‌نویسید.

قرار است هر فایل test به پیاده‌سازی شما لینک شود تا یک فایل اجرایی کنسولی بسازد که testها را اجرا می‌کند. اجرای این فایل اجرایی، برای هر test شکست‌خورده پیامی چاپ می‌کند و اگر testها شکست بخورند، وضعیت خروج غیرصفر برمی‌گرداند.

برای کار روی یک تمرین:

  • ساخت اولیه را با Make ایجاد کنید
  • برای هر test واحد:
    • خط TEST_IGNORE() را حذف کنید.
    • خطاهای کامپایل را برطرف کنید تا test شکست بخورد.
    • فقط به اندازه‌ای پیاده‌سازی کنید که test پاس شود.
    • پیاده‌سازی خود را بازآرایی کنید تا خوانایی بیشتر شود، تکرار کم شود و غیره.

کامپایل و اجرای testها

هر تمرین یک فایل makefile و یک فایل .c شامل testهای واحد همراه دارد. لازم نیست فایل Make را ویرایش کنید. فایل Make ارائه‌شده فرض می‌کند که پیاده‌سازی شما به‌صورت یک فایل هدر (.h) و یک فایل سورس (.c) هم‌نام تمرین وجود دارد.

برای نمونه، تمرین bob انتظار پیاده‌سازی در bob.h و bob.c را دارد. برای تمرین‌هایی که در اسمشان خط تیره دارند، فرض می‌شود فایل‌های سورس از زیرخط استفاده می‌کنند؛ بنابراین word-count انتظار word_count.h و word_count.c را دارد. ممکن است تصمیم بگیرید پیاده‌سازی شما به‌قدری ساده است که می‌تواند کاملاً در همان فایل هدر بماند؛ در این صورت می‌توانید فایل .c را حذف کنید.

پیش از اجرای Make، فایل‌های پیاده‌سازی اولیه‌تان را ایجاد کنید. اگر هنگام اجرای Make برای تمرین bob فایل‌های bob.h و bob.c را نداشته باشید، Make خطایی درباره‌ی پیدا نشدن فایل‌ها می‌دهد. این فایل‌ها می‌توانند خالی باشند، اما باید وجود داشته باشند.

ساخت code

ساده‌ترین راه برای ساخت code، استفاده از make در خط فرمان (CLI) است. در Linux، این CLI در bash و محیط‌های مشابه در دسترس است؛ در MacOS از Terminal استفاده کنید. در Windows 10، Bash از طریق Windows Subsystem for Linux (WSL) در دسترس است.

برای این کار، با فرض اینکه پوشه‌ی جاری پوشه‌ی تمرین است:

$ make

این کار code شما را کامپایل می‌کند و testها را اجرا می‌کند.

فایل makefile یک ساخت دیگر هم دارد که برخی اشتباه‌های رایج مانند نشت حافظه و دسترسی خارج از محدوده به آرایه را بررسی می‌کند. برای اجرای این بررسی‌ها، فرمان زیر را در خط فرمان وارد کنید:

$ make memcheck

پاک‌سازی

برای پاک‌سازی پس از ساخت، می‌توانید به make بگویید همه‌ی خروجی ساخت، از جمله فایل اجرایی را حذف کند:

$ make clean

روش جایگزین ساخت در MacOS

در MacOS می‌توانید از Xcode هم استفاده کنید. برای ساخت code، از نوار ابزار گزینه‌ی Build را انتخاب کنید.