所以我的代碼在Makefile.am
文件(automake的)這個片段:一個Makefile裏的命令中指定的變量目標
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的內置測試套件支持? – DanielKO
你能詳細說明一下嗎?給出一個URL記錄的地方? – knocte
手冊在這裏:http://www.gnu.org/software/automake/manual/html_node/Tests.html它可能是簡單地指定一個'TESTS'變量(而不是'TEST_ASSEMBLIES')的問題,自定義'LOG_DRIVER'或'LOG_DRIVER'(可能是你的'RUNNER')。 – DanielKO