如果单元测试失败,则会失败

时间:2017-05-13 20:26:38

标签: makefile return-value gnu-make

我有一个用于编译静态库的makefile。此makefile具有用于编译与静态库关联的单元测试套件的规则。编译测试套件后,将调用python脚本来运行测试并记录结果。它看起来像这样:

unit:
    $(MAKE) -C cXbase/unit
    python $(TESTS_RUNNER) $(UNIT_TESTS_EXEC) $(UNIT_TESTS_LOG)

我使用Python来使测试调用变得可移植。现在,一切正常:测试编译并调用测试运行器并在Linux和Windows中正确记录所有内容。只有当测试失败时,我想停止整个make过程并返回错误。更确切地说,当单元测试失败(或许多)时,我希望不能make allmake unit

如果单元测试失败,Python脚本将返回特定的退出代码。我希望能够以便携方式捕获它,如果捕获了退出代码,则会失败。

您对如何做到这一点有什么建议吗?我在其他地方找不到令人信服或便携的东西。

由于

1 个答案:

答案 0 :(得分:0)

似乎解决方案比我想象的更简单。 python退出代码直接反映在make的退出代码中。换句话说,如果脚本失败(退出0以外的代码),make会将此视为命令错误并停止。

我的Python脚本退出代码在处理测试失败时遇到了错误,这些错误将我隐藏起来。现在它已经解决了,它完美无缺。

我在这里发现了这一点:Handling exit code returned by python in shell script