Rendre le passage des tests unitaires obligatoires avant de commit / push

Il arrive parfois (souvent) (tout le temps) que l’on ai besoin de s’assurer qu’on balance pas du code pété lors un commit / push. Bien entendu on dispose des pipelines de nos CI habituels pour lancer les tests unitaires après coup, mais dans l’idéal, chaque commit et chaque push sur le repo devrait obligatoirement avoir été testé en amont.

On va voir comment arranger ça.

Alors oui, on a les hooks disponibles avec GIT. Le seul soucis, c’est qu’ils ne sont pas versionnés, ce qui peut rendre les choses un peu relou quand on travaille en équipe sur un projet.

Pour pallier à ce problème, il y a des tas de packages NPM qui existent. On va utiliser Husky qui a plutôt bonne réputation.

C’est tout bête, vous allez voir :

On installe le package au sein de notre projet :

yarn add husky --dev

Puis on configure notre package.json dans scripts :

 “citest”: “CI=true react-scripts test --env=jsdom”,
 “precommit”: “npm run citest”,
 “prepush”: “npm run citest”

Notez le premier script, avec React, il permet de sortir du mode watch de react-scripts test, et d’avoir un bel exit 1 qui permettra d’identifier clairement qu’il y a un pépin.

Et s’il y a un pépin, vous allez rapidement le savoir en faisant votre commit :

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *