J'ai récemment commencé à utiliser git, et a également commencé les tests unitaires (en utilisant Python unittest
du module). Je voudrais que mes tests à chaque fois que j'ai commis, et n'engagent que si elles passent.
Je suppose que j'ai besoin d'utiliser pre-commit
en /hooks
, et j'ai réussi à le faire exécuter les tests, mais je n'arrive pas à trouver un moyen d'arrêter l'engager si elles échec des tests. Je suis en cours d'exécution de tests avec make test
, qui à son tour est en cours d'exécution python3.1 foo.py --test
. Il semble que je n'ai pas de sortie différents condition que les tests de réussite ou d'échec, mais je suis peut-être à la recherche dans le mauvais endroit.
Edit: Est-ce quelque chose de rare que je veux faire ici? J'aurais pensé que c'était une exigence commune...
Edit2: Juste au cas où les gens ne peuvent pas être pris la peine de lire les commentaires, le problème était qu' unittest.TextTestRunner
n'a pas de sortie non nul, la possibilité que la suite de test est réussi ou pas. Pour l'attraper, j'ai fait:
result = runner.run(allTests)
if not result.wasSuccessful():
sys.exit(1)