Crafting happiness with Free Software & Hardware

Gunit64 – Journal de développement

Guile Logo      Logo Emacs

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

  1. Installer guile-gunit64
  2. Installer geiser-gunit64
  3. Activer geiser-gunit64-mode lorsque geiser-mode est activé (via un hook dans votre configuration d'Emacs).
  4. Configurer Geiser pour que le buffer *Geiser Debug* traite les couleurs ANSI (setq geiser-debug-treat-ansi-colors 'colors)
  5. 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!

#gnu #guile #emacs #geiser #gunit64 #tdd #français