Apprends à tester tes exercices Emacs Lisp sur Exercism
Les tests Elisp s'exécutent avec ERT, une bibliothèque Emacs Lisp pour les tests de régression et les tests unitaires. Il existe plusieurs façons de lancer les tests.
Pour lancer les tests de façon interactive depuis Emacs :
M-x eval-buffer RET
M-x ert RET test-name RET
M-x ert RET t RET
Note que cela exécutera tous les tests actuellement chargés dans Emacs !M-x eval-buffer RET avant de tester chaque fois que tu as fait des modificationsPour n'exécuter que les tests du tampon courant, tu peux ajouter ceci à ton .emacs ou 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))
Après avoir redémarré Emacs :
M-x my-eval-and-run-all-tests-in-buffer RETLes tests interactifs sont très pratiques pendant que tu travailles sur un exercice, mais le mode batch est préférable lorsque tu veux vérifier qu'un exercice est prêt à être soumis.
Pour lancer tous les tests depuis le terminal, en mode batch, exécute emacs -batch -l ert -l *-test.el -f ert-run-tests-batch-and-exit
La commande ci-dessus est un peu lourde à taper, donc si tu veux :
$PATH (probablement dans ~/bin) nommé ert-run
#!/usr/bin/env sh
emacs -batch -l ert -l $1 -f ert-run-tests-batch-and-exit
chmod +x ert-run
Tu devrais alors pouvoir simplement appeler ert-run *-test.el pour lancer les tests en mode batch.
D'autres options sont disponibles dans la documentation, C-h i m ert RET.
Comme Emacs est lui-même un interprète elisp, ton code de travail se trouve toujours dans son environnement d'exécution natif. Tu peux évaluer n'importe quelle forme en appuyant sur C-x e à la fin de la forme, ou une sélection avec M-x eval-region, ou tout le tampon avec M-x eval-buffer. C'est extrêmement pratique pour déboguer rapidement ton code.
Comme ton code et tes tests sont tous deux de l'elisp valide, il est conseillé de travailler sur le code de ton exercice dans un panneau de tampon, côte à côte avec son test, comme ceci :

Divise le cadre verticalement avec C-x 3, passe à la nouvelle fenêtre avec C-x o, et ouvre le fichier avec C-x C-f /path/to/file.