Tanuld meg, hogyan tesztelheted az Emacs Lisp feladataidat az Exercism-ön
Az elisp teszteket az ERT segítségével futtatjuk, amely egy Emacs Lisp könyvtár regressziós és egységteszteléshez. A teszteket többféleképpen is futtathatod.
Ha az Emacsen belülről szeretnéd interaktívan futtatni a teszteket:
M-x eval-buffer RET
M-x ert RET test-name RET
M-x ert RET t RET
Vedd figyelembe, hogy ez az összes jelenleg az Emacsbe betöltött tesztet lefuttatja!M-x eval-buffer RET parancsotHa csak az aktuális pufferben lévő teszteket szeretnéd futtatni, ezt hozzáadhatod a .emacs vagy init.el fájlodhoz:
(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))
Az Emacs újraindítása után:
M-x my-eval-and-run-all-tests-in-buffer RETAz interaktív tesztelés remek, amíg egy feladaton dolgozol, de ha azt szeretnéd ellenőrizni, hogy egy feladat készen áll-e a beküldésre, a batch módban történő tesztelés a jobb választás.
Ha a terminálból, batch módban szeretnéd lefuttatni az összes tesztet, add ki ezt a parancsot: emacs -batch -l ert -l *-test.el -f ert-run-tests-batch-and-exit
A fenti parancs kicsit nehézkes, szóval ha szeretnéd:
ert-run nevű fájlt a $PATH-odban (valószínűleg a ~/bin mappában)#!/usr/bin/env sh
emacs -batch -l ert -l $1 -f ert-run-tests-batch-and-exit
chmod +x ert-run
Ezután egyszerűen meghívhatod az ert-run *-test.el parancsot, és a tesztek batch módban lefutnak.
További lehetőségeket a dokumentációban találsz: C-h i m ert RET.
Mivel az Emacs maga is egy elisp-értelmező, a kódod mindig a saját natív futtatási környezetében van. Bármelyik formot kiértékelheted úgy, hogy a form végén megnyomod a C-x e billentyűkombinációt, egy kijelölést a M-x eval-region, a teljes puffert pedig a M-x eval-buffer paranccsal. Ez rendkívül hasznos lehet a kódod gyors hibakereséséhez.
Mivel a kódod és a tesztjeid is érvényes elisp, érdemes a feladat kódját egy pufferablakban, egymás mellett megnyitni a tesztjével, így:

Oszd fel a keretet függőlegesen a C-x 3 billentyűkombinációval, válts át az új ablakra a C-x o paranccsal, és nyisd meg a fájlt a C-x C-f /path/to/file paranccsal.