Μάθε πώς να δοκιμάζεις τις ασκήσεις σου στην Emacs Lisp στο Exercism
Τα tests σε Elisp εκτελούνται με το ERT, μια βιβλιοθήκη της Emacs Lisp για testing παλινδρόμησης και μονάδων. Μπορείς να εκτελέσεις τα tests με διάφορους τρόπους.
Για να εκτελέσεις τα tests διαδραστικά μέσα από το Emacs:
M-x eval-buffer RET
M-x ert RET test-name RET
M-x ert RET t RET
Σημείωσε ότι αυτό θα εκτελέσει όλα τα tests που είναι φορτωμένα αυτή τη στιγμή στο Emacs!M-x eval-buffer RET πριν το testing, όποτε έχεις κάνει αλλαγέςΓια να εκτελέσεις μόνο τα tests του τρέχοντος buffer, μπορείς να προσθέσεις το παρακάτω στο .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Το διαδραστικό testing είναι εξαιρετικό όσο δουλεύεις πάνω σε μια άσκηση, αλλά το testing σε batch mode είναι προτιμότερο όταν θέλεις να ελέγξεις ότι μια άσκηση είναι έτοιμη για υποβολή.
Για να εκτελέσεις όλα τα tests από το τερματικό, σε batch mode, εκτέλεσε 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 και να εκτελέσεις τα tests σε batch mode.
Άλλες επιλογές θα βρεις στην τεκμηρίωση, C-h i m ert RET.
Επειδή το Emacs είναι το ίδιο ένας διερμηνευτής της elisp, ο κώδικας με τον οποίο δουλεύεις βρίσκεται πάντα στο φυσικό του περιβάλλον εκτέλεσης. Μπορείς να αξιολογήσεις οποιαδήποτε φόρμα πατώντας C-x e στο τέλος της φόρμας, ή μια επιλογή με το M-x eval-region, ή ολόκληρο τον buffer με το M-x eval-buffer. Αυτό μπορεί να σου φανεί εξαιρετικά χρήσιμο για να κάνεις γρήγορα debug στον κώδικά σου.
Επειδή τόσο ο κώδικας όσο και τα tests σου είναι έγκυρη elisp, προτείνεται να δουλεύεις τον κώδικα της άσκησης σε ένα παράθυρο, δίπλα-δίπλα με τα tests του, όπως εδώ:

Χώρισε το frame κάθετα με C-x 3, πήγαινε στο νέο παράθυρο με C-x o και άνοιξε το αρχείο με C-x C-f /path/to/file.