सीखिए कि 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 से फाइल खोलिए।