我有一个make目标,看起来像这样:
.PHONY: run-my-test
run-my-test: all
run_test_suite.sh --all --log-to-file
post_process_logs.sh
如果测试用例失败,run_test_suite.sh
的退出代码将导致Make无法继续运行post_process_logs.sh
。这是一个问题,因为我想获得已处理的日志,即使是失败的测试。我应该如何更新我的目标来做到这一点?
我考虑过以某种方式保存退出代码,也许在目标定义的末尾用它退出,或者我把调用拆分到单独的目标中?
我可以补充一点,由于我们的构建系统的工作方式,我几乎不得不从Make中完成这些工作,而且我不希望添加更多的目标,因为make文件往往会被这些目标弄得乱七八糟。
2条答案
按热度按时间bq8i3lrv1#
如果您希望构建在运行
post_process_logs.sh
* 之后 * 失败,请将这两个命令放在同一条目中。run_test_suite.sh
的退出状态保存在shell变量e
中,该变量用作post_process_logs.sh
之后exit
的参数,以设置整个命令的退出状态。ewm0tg9j2#
当你有一个大的逻辑,不想处理所有这些地狱: