我最近开始使用git,并开始进行单元测试(使用Python的unittest模块).我想在每次提交时运行我的测试,并且只有在它们通过时才提交.
我猜我需要用pre-commit的/hooks,我已经成功地使它运行测试,但我似乎无法找到一种方法来阻止,如果他们失败测试的承诺.我正在运行测试make test,而后者正在运行python3.1 foo.py --test.似乎我没有得到不同的退出条件,无论测试通过还是失败,但我可能在错误的地方寻找.
编辑:我想在这里做一些不寻常的事吗?我原以为这是一个常见的要求......
编辑2:万一人们无法阅读评论,问题是unittest.TextTestRunner不会以非零状态退出,测试套件是否成功.要抓住它,我做了:
result = runner.run(allTests)
if not result.wasSuccessful():
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)