تعرّف على كيفية اختبار تمارين Pyret على Exercism
بعد أن تنزّل تمرينًا بنجاح، ستحتاج إلى تثبيت وحدات 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.arr # Solution file - your code goes here
├── leap-test.arr # Test cases for the exercise
لتشغيل الاختبارات، استخدم exercism test إذا كنت قد نزّلت واجهة سطر الأوامر الرسمية لـ Exercism، أو شغّل pyret leap-test.arr.
سيشغّل Pyret مجموعة الاختبارات، وهي تتألف من مجموعة من كتل check المُعنونة التي تختبر ملف الحل لديك مقابل مدخلات محددة ونتائج متوقعة.
ومن الأجزاء الحاسمة في هذه العملية أن تصدّر أجزاءً من الكود الخاص بك بشكل صريح، حتى تتمكن مجموعة الاختبارات من رؤيتها.
تستورد الاختبارات في هذا المسار ملفك، ما يتيح لها الوصول إلى أي شيء صدّرته بشكل صريح من الكود الخاص بك.
لتصدير المتغيرات، عليك إضافة عبارة 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 مُهيّأة لاستخدامك.