بیاموزید چگونه تمرینهای Pyret خود را در Exercism test کنید
پس از اینکه تمرین را با موفقیت دانلود کردید، برای اجرای تستها باید ماژولهای Node.js را نصب کنید:
cd /path/to/exercise
npm install
سپس پوشهای را که ابزار خط فرمان pyret در آن قرار دارد به $PATH خود اضافه کنید
# bash
PATH="./node_modules/.bin:$PATH"
# zsh
path=(./node_modules/.bin $path)
# fish
fish_add_path ./node_modules/.bin
در پوشهی تمرین چندین فایل وجود خواهد داشت، اما مهمترین آنها دو فایل هستند: فایل راهحل و فایل تست شما. در مثال زیر، تمرین Leap را دانلود کردهایم.
leap/
├── leap.arr # Solution file - your code goes here
├── leap-test.arr # Test cases for the exercise
برای اجرای تستها، یا اگر CLI رسمی Exercism را دانلود کردهاید از exercism test استفاده کنید، یا pyret leap-test.arr را اجرا کنید.
Pyret مجموعهی تست را اجرا میکند؛ این مجموعه از تعدادی «بلوک» check برچسبدار تشکیل شده است که فایل راهحل شما را با ورودیهای مشخص و نتایج مورد انتظار میسنجد.
بخش مهمی از این فرایند این است که بخشهایی از کد خود را بهطور صریح صادر کنید تا مجموعهی تست بتواند آنها را ببیند.
تستها در این ترک فایل شما را import میکنند و به این ترتیب به هر چیزی که بهطور صریح از کد شما صادر شده باشد دسترسی خواهند داشت.
برای صادر کردن متغیرها، باید در ابتدای فایل خود یک دستور provide اضافه کنید.
قطعهکدهای زیر دو روش معتبر برای صادر کردن a، b و c هستند.
# using a list of bindings
provide a, b, c end
# using an object literal
provide {
a: a,
b: b,
c: c
}
end
روش سوم، provide *، کوتاهنویسی برای صادر کردن همهی اتصالهای سطح بالا بهجز انواع دادهی سفارشی است
با این حال، معمولاً توصیه نمیشود، چون Pyret سختگیرانه اجازهی سایهاندازی را نمیدهد.
برخی تمرینها نیاز دارند که یک نوع دادهی سفارشی برای اهداف تست صادر شود.
در چنین مواردی میتوانید از یک دستور provide-types استفاده کنید.
از آنجا که یک نوع داده توابع دیگری هم دارد که ممکن است صادر نشده باشند، توصیه میشود با وجود نگرانی مربوط به سایهاندازی از provide-types * استفاده کنید.
provide-types *
data MyPoint:
| two-dim(x, y)
| three-dim(x, y, z)
end
در همهی اسکلتهای تمرین، دستور provide یا provide-types برای استفادهی شما آماده شده است.