Bouc permet de contrôler l’exécution de tests unitaires sur une ou plusieurs machines.
Les machines de tests se connectent au serveur afin de récupérer la configuration des tests puis lancent ces tests.
Elles remontent de nombreuses informations sur le déroulement des tests (réussite, échec, nombre d’erreurs, temps d’exécution des tests).
Le serveur génère une page html de résultat.
Bouc est distribué sous la licence GNU GPL troisième version.
Python 2.5.2 ou une version supérieure.
Debian : installer les prérequis :
aptitude install python
Le code source de l’application est disponible via un dépôt git accessible par la ligne de commande suivante:
git clone git://git.ohmytux.com/boucs
git clone git://git.ohmytux.com/bouc
La première étape de la configuration du serveur boucs consiste à écrire une configuration pour un projet.
Le fichier de configuration peut s’appeler nomduprojet.conf. L’extension doit être .conf. Le fichier doit être placé dans le répertoire conf.
Il doit obligatoirement contenir les champs suivants :
[général] projet=nomduprojet chemin=/tmp sources=git clone git://git.ohmytux.com/nomduprojet tests=./testsunitaires.py répertoire=nomduprojet
[général] — Entête immuable (doit être présente)
projet=nomduprojet — Le nom du projet. C’est le nom que le programme client bouc va invoquer lors de sa demande de configuration.
chemin=/tmp — Le chemin sur l’ordinateur client où seront téléchargés les sources du projet.
sources=git clone git://git.votre.entreprise.org/nomduprojet — La commande à exécuter par le client pour télécharger les sources du projet.
tests=./testsunitaies.py — La commande à passer pour exécuter les tests unitaires du projet.
répertoire=nomduprojet — Le répertoire où sont contenus les sources du projet une fois téléchargées.
user@serveur:~$ boucs
user@machine-test:~$ bouc serveur nomduprojet
Depuis la version 0.1, Bouc est testé systématiquement (tests fonctionnels et tests de non-régression). Le code est relu par Pylint. Le comportement de Bouc est également audité par l’excellent Fusil de Victor Stinner (suivre ce lien pour savoir ce qu’est un fuzzer), ce qui permet d’anticiper sur la découverte d’anomalie. Si malgré cela vous constatez un bug, j’accueille chaleureusement les temoignages et, soyons fous, les patches.