私は最近 git を使い始め、単体テスト (Python のunittest
モジュールを使用) も始めました。コミットするたびにテストを実行し、合格した場合にのみコミットしたいと思います。
pre-commit
inを使用する必要があると推測/hooks
し、テストを実行することはできましたが、テストが失敗した場合にコミットを停止する方法を見つけることができないようです。でテストを実行しています。make test
これは実行中python3.1 foo.py --test
です。テストが成功したか失敗したかにかかわらず、別の終了条件が得られないように見えますが、間違った場所を探している可能性があります。
編集:これは私がここでやりたい珍しいことですか?私はそれが一般的な要件だと思っていたでしょう...
Edit2:人々がコメントを読むのが面倒な場合に備えて、問題はunittest.TextTestRunner
、テスト スイートが成功したかどうかに関係なく、ゼロ以外のステータスで終了しないことでした。それをキャッチするために、私はしました:
result = runner.run(allTests)
if not result.wasSuccessful():
sys.exit(1)