Exercism-এ আপনার Emacs Lisp অনুশীলনীগুলো পরীক্ষা করার উপায় শিখুন
Elisp টেস্ট চালানো হয় ERT দিয়ে, যা রিগ্রেশন/ইউনিট টেস্টিংয়ের জন্য একটি Emacs Lisp লাইব্রেরি। টেস্ট কয়েকটি উপায়ে চালানো যায়।
Emacs-এর ভেতর থেকে ইন্টার্যাক্টিভভাবে টেস্ট চালাতে:
M-x eval-buffer RET
M-x ert RET test-name RET দিয়েM-x ert RET t RET দিয়ে
লক্ষ্য করুন, এতে Emacs-এ বর্তমানে লোড করা সব টেস্ট রান করা হবে!M-x eval-buffer RET আবার রান করুনশুধু বর্তমান বাফারের টেস্টগুলো চালাতে চাইলে এটি আপনার .emacs বা init.el-এ যোগ করতে পারেন:
(defun my-eval-and-run-all-tests-in-buffer ()
"Delete all loaded tests from the runtime, evaluate the current buffer and run all loaded tests with ert."
(interactive)
(ert-delete-all-tests)
(eval-buffer)
(ert 't))
Emacs পুনরায় চালু করার পর:
M-x my-eval-and-run-all-tests-in-buffer RETকোনো অনুশীলনী নিয়ে কাজ করার সময় ইন্টার্যাক্টিভ টেস্টিং দারুণ কাজে লাগে, কিন্তু কোনো অনুশীলনী জমা দেওয়ার জন্য প্রস্তুত কি না তা যাচাই করতে চাইলে ব্যাচ মোডে টেস্ট করাই ভালো।
টার্মিনাল থেকে ব্যাচ মোডে সব টেস্ট চালাতে হলে এই কমান্ডটি চালান emacs -batch -l ert -l *-test.el -f ert-run-tests-batch-and-exit
উপরের কমান্ডটি একটু জটিল, তাই চাইলে:
$PATH-এ (সম্ভবত ~/bin-এ) ert-run নামে একটি ফাইল তৈরি করুন#!/usr/bin/env sh
emacs -batch -l ert -l $1 -f ert-run-tests-batch-and-exit
chmod +x ert-run দিয়ে ফাইলটি এক্সিকিউটেবল করে নিনএবার আপনি সহজেই ert-run *-test.el কল করে ব্যাচ মোডে টেস্ট চালাতে পারবেন।
আরও অপশন ডকুমেন্টেশনে পাওয়া যাবে, C-h i m ert RET।
Emacs নিজেই যেহেতু একটি elisp ইন্টারপ্রেটার, তাই আপনার কাজের কোড সবসময় তার নিজস্ব এক্সিকিউশন এনভায়রনমেন্টেই থাকে। ফর্মের শেষে C-x e চেপে যেকোনো ফর্ম ইভ্যালুয়েট করতে পারেন, আবার M-x eval-region দিয়ে একটি সিলেকশন অথবা M-x eval-buffer দিয়ে পুরো বাফার। আপনার কোড দ্রুত ডিবাগ করার জন্য এটি খুবই কাজের।
যেহেতু আপনার কোড আর টেস্ট দুটোই বৈধ elisp, তাই পরামর্শ হলো আপনার অনুশীলনীর কোডটি তার টেস্টের পাশাপাশি একটি বাফার প্যানে নিয়ে কাজ করা, এভাবে:

C-x 3 দিয়ে ফ্রেমটি উল্লম্বভাবে ভাগ করুন, C-x o দিয়ে নতুন উইন্ডোতে যান, আর C-x C-f /path/to/file দিয়ে ফাইলটি খুলুন।