我有一个用于编译静态库的makefile。此makefile具有用于编译与静态库关联的单元测试套件的规则。编译测试套件后,将调用python脚本来运行测试并记录结果。它看起来像这样:
unit:
$(MAKE) -C cXbase/unit
python $(TESTS_RUNNER) $(UNIT_TESTS_EXEC) $(UNIT_TESTS_LOG)
我使用Python来使测试调用变得可移植。现在,一切正常:测试编译并调用测试运行器并在Linux和Windows中正确记录所有内容。只有当测试失败时,我想停止整个make过程并返回错误。更确切地说,当单元测试失败(或许多)时,我希望不能make all
或make unit
。
如果单元测试失败,Python脚本将返回特定的退出代码。我希望能够以便携方式捕获它,如果捕获了退出代码,则会失败。
您对如何做到这一点有什么建议吗?我在其他地方找不到令人信服或便携的东西。
由于
答案 0 :(得分:0)
似乎解决方案比我想象的更简单。 python退出代码直接反映在make
的退出代码中。换句话说,如果脚本失败(退出0以外的代码),make
会将此视为命令错误并停止。
我的Python脚本退出代码在处理测试失败时遇到了错误,这些错误将我隐藏起来。现在它已经解决了,它完美无缺。
我在这里发现了这一点:Handling exit code returned by python in shell script