Gunit64 – Journal de développement
Je pratique presque systématiquement le Test Driven Development lorsque je travail sur mes petits projets. Autant dire que l'exécution de tests et la lecture de leurs résultats sont des tâches plus que répétitives.
Qui dit répétition peut dire automatisation… Je te présente ici les premières fonctionnalités d'un outil qui devrait me faciliter la vie. J'ai nommé Gunit64 !
Cet article est valable pour les versions suivantes :
– guile-gunit64 :0.0.1-0.094c17a
– geiser-gunit64 :0.0.1-0.7a87357
Tutoriel d'introduction
Etant donné la suite de tests SRFI-64 suivante.
Le raccourci C-c r t
va exécuter ces tests et afficher le résultat de l'exécution.
Le raccourci C-c r f
ne va exécuter que les tests qui ont échoué lors de la dernière exécution.
Le raccourci C-c r .
va exécuter le test sur lequel le curseur est positionné (le curseur doit être sur la chaîne de caractère qui représente le nom du test).
Le raccourci C-c r r
va ré-exécuter les tests de la dernière exécution.
Rapide explication
Les raccourcis du mode mineur geiser-gunit
vont appeler des fonction Emacs Lisp qui vont :
– sauvegarder tous les buffers
– compiler le buffer courant
– évaluer une s-exp dans le REPL
La dite s-exp est une des procédures exportées par le module Guile gunit64
.
Dépannage
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Unbound variable: run-root-tests
Il te manque (use-modules (gunit64))
ou un équivalent.
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong type to apply: ""
Tes tests ne sont pas correctement passé au paramètre *test-root*
. Respecte bien le modèle suivant :
(*test-root*
(lambda ()
;;; Ici tes tests
))
Installation
- Installer guile-gunit64
- Installer geiser-gunit64
- Activer
geiser-gunit64-mode
lorsquegeiser-mode
est activé (via un hook dans votre configuration d'Emacs). - Configurer Geiser pour que le buffer
*Geiser Debug*
traite les couleurs ANSI(setq geiser-debug-treat-ansi-colors 'colors)
- Configurer Geiser pour ne pas sauter vers le buffer
*Geiser Debug*
en cas d'erreur à la compilation(setq geiser-debug-jump-to-debug nil)
Pour les étapes 1 et 2, j'ai créé les définitions Guix de ces 2 paquets. Vous pouvez les trouver dans mon canal personnel.
Limitations
Gunit64 ne gère que des suites de test simples (test-assert
, test-equal
et test-error
). Dès que des test-group
font leur entrée, ça cafouille. Je n'ai pas encore vu comment il se comporte avec des test-runner
définis par l'utilisateur (j'imagine, pas très bien).
Thank you very much for reading this article! Hope you learned something!
Don't hesitate to give me your opinion, suggest an idea for improvement, report an error, or ask a question ! I would be so glad to discuss about the topic covered here with you ! You can reach me here.
Don't miss out on the next ones ! You car subscribe via RSS or via e-mail just right here !
And more importantly, share this blog and tell your friends why they should read this post!