Aprende a probar tus ejercicios de Emacs Lisp en Exercism
Las pruebas de Elisp se ejecutan con ERT, una biblioteca de Emacs Lisp para pruebas de regresión y unitarias. Las pruebas se pueden ejecutar de varias formas.
Para ejecutar las pruebas de forma interactiva desde Emacs:
M-x eval-buffer RET
M-x ert RET test-name RET
M-x ert RET t RET
Ten en cuenta que esto ejecutará todas las pruebas cargadas actualmente en Emacs.M-x eval-buffer RET antes de probar siempre que hayas hecho cambiosPara ejecutar solo las pruebas del búfer actual, puedes añadir esto a tu .emacs o 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))
Después de reiniciar Emacs:
M-x my-eval-and-run-all-tests-in-buffer RETLas pruebas interactivas son estupendas mientras trabajas en un ejercicio, pero las pruebas en modo por lotes son preferibles cuando quieres comprobar que un ejercicio está listo para enviarlo.
Para ejecutar todas las pruebas desde el terminal, en modo por lotes, ejecuta emacs -batch -l ert -l *-test.el -f ert-run-tests-batch-and-exit
El comando anterior es un poco engorroso, así que, si quieres:
$PATH (probablemente en ~/bin) llamado ert-run
#!/usr/bin/env sh
emacs -batch -l ert -l $1 -f ert-run-tests-batch-and-exit
chmod +x ert-run
Deberías poder llamar simplemente a ert-run *-test.el y ejecutar las pruebas en modo por lotes.
Puedes encontrar otras opciones en la documentación, C-h i m ert RET.
Como Emacs es en sí mismo un intérprete de elisp, tu código de trabajo siempre está en su entorno de ejecución nativo. Puedes evaluar cualquier forma pulsando C-x e al final de la forma, o una selección con M-x eval-region o todo el búfer con M-x eval-buffer. Esto puede ser extremadamente útil para depurar tu código rápidamente.
Como tanto tu código como tus pruebas son elisp válido, te sugerimos que trabajes con el código de tu ejercicio en un panel de búfer junto a su prueba, así:

Divide el marco verticalmente con C-x 3, cambia a la nueva ventana con C-x o y abre el archivo con C-x C-f /path/to/file.