我有一个C ++程序,可以生成我认为最小的TAP输出,如下所示:
TAP version 13
1..3
ok 1
not ok 2
ok 3
此程序名为test_runner
并返回0.
目录中的Makefile.am
如下:
TESTS = test_runner
check_PROGRAMS = test_runner
test_runner_SOURCES = main.cpp
现在,当我执行make check
时,摘要输出如下:
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
我的问题是:make check
是否应该检查我的程序的TAP输出(因为我希望获得2次成功和1次失败),如果是这样,我做错了什么?
automake
版本为1.13.3
,autoconf
版本为2.69
。
答案 0 :(得分:6)
您应该在 configure.ac :
中使用此功能AC_REQUIRE_AUX_FILE([tap-driver.sh])
...
AC_PROG_AWK
这在你的 Makefile.am :
中check_PROGRAMS = test_runner
test_runner_SOURCES = main.cpp
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
$(top_srcdir)/tap-driver.sh
TESTS = test_runner
LOG_DRIVER
变量使其调用tap-driver.sh
脚本,否则使用默认的通用测试驱动程序。您可以选择define specific drivers for each file extension(例如,一个用于.py,另一个用于.sh等),但在这种情况下,单个全局LOG_DRIVER
就足够了。
正如用户 ecerulm 指出的那样,tap-driver.pl
已被弃用,因此我将答案更改为仅考虑tap-driver.sh
。