Intégration continue sans serveur : les tests

Lorsqu'on travaille avec des tests, il est important de les lancer régulièrement. Par contre, lorsqu'on est seul (ou peu nombreux, ie <=3) à travailler sur un projet, il est coûteux de mettre en place un serveur d'intégration continue.

Dans les projets où je suis seul développeur, j'ai tout de même automatisé le lancement des tests. Pour ce faire, j'utilise deux choses : un Makefile, qui définit comment lancer les tests, et un hook git, pour bloquer le push si les tests ne passent pas. De cette manière, je suis sûr que ce que le code que je livre passe les tests.

Le hook git est à placer dans .git/hooks/pre-push et contient le code suivant :

#!/bin/sh make tests exit $?

Il lance simplement les tests et échoue si les tests échouent.

Maintenant, dans mon Makefile, j'ai le contenu suivant :

tests: python -m unittest tests

Ce Makefile simplissime ne fait que lancer les tests contenus dans le module tests. L'avantage de cette méthode est que le jour où un serveur d'intégration continue est mis en place, on peut réutiliser ce Makefile pour lancer les tests.

J'ai fait un projet de démonstration pour le lancement des tests : mini-ci. Pour essayer :

git clone https://github.com/arthru/mini-ci.git cd mini-ci make hooks make tests

Il vous suffit alors de faire un commit puis un git push pour constater que le push est bloqué lorsque le test échoue (ce qui devrait arriver une fois sur deux).

Derniers articles

Rencontres en non-mixité choisie : retour d’expérience et mise en perspective

En 2023 et 2024, Hashbang a accueilli des rencontres réservées aux femmes et aux personnes non-binaires. Nous revenons sur ces rencontres et leurs enseignements.

Pourquoi nous utilisons Wagtail : le CMS Django qui sépare les casquettes

Une introduction à Wagtail et son Zen : comment laisser à l'éditeur·i·ce de contenu un peu de choix, mais pas trop.

Comment devenir un bureau d'enregistrement ?

Devenir bureau d'enregistrement est un parcours de la combattante au niveau technique, administratif et financier. Il y a des cas simples et d'autres qui demandent de raser un Yack.

Précisions sur le projet de bureau d'enregistrement coopératif

L'appel à intérêt lancé la semaine dernière a suscité plusieurs réactions sur les valeurs proposées : clarifions quelques points aujourd'hui.