【发布时间】:2014-01-17 12:18:28
【问题描述】:
所以我在Makefile.am 文件(自动制作)中有这段代码:
RUNNER = \
for asm in $${TEST_ASSEMBLIES}; do \
echo -e "Running tests on $${asm}..."; \
$(ENV_OPTIONS) $(NUNIT_CONSOLE) -nologo -noshadow $$asm; \
echo $$?; \
done
test:
@pushd $(DIR_BIN) &>/dev/null; \
export TEST_ASSEMBLIES="$(TEST_ASSEMBLIES)"; $(RUNNER); \
popd &>/dev/null;
echo $$?; 语句有效:测试有效时打印 0,失败时打印 1。
但我想要做的是有一个名为 GLOBAL_EXIT_CODE 的全局变量,如果所有测试运行良好,则为 0,如果 任何 测试失败,则为 1。但是对于我的生活,我什至无法在变量中捕获$$? 的值。我尝试了很多事情:通过简单的“VAR = $$?”导出、分配,还使用+= 运算符......等等。没有任何效果! :(
我想要一个变量GLOBAL_EXIT_CODE 的原因是我可以在test 目标中执行exit $GLOBAL_EXIT_CODE,以防它的值大于零,以便让命令make test 返回错误.
【问题讨论】:
-
为什么不使用 automake 的内置测试套件支持?
-
你能详细说明一下吗?提供一个记录在案的 URL?
-
手册在这里:gnu.org/software/automake/manual/html_node/Tests.html 这可能只是简单地指定一个
TESTS变量(而不是TEST_ASSEMBLIES)和一个自定义LOG_DRIVER或LOG_DRIVER(可能是什么你的RUNNER确实)。
标签: shell unix makefile autotools automake