我有一个C++程序生成我认为最小的TAP输出,如下所示:
TAP version 13
1..3
ok 1
not ok 2
ok 3
Run Code Online (Sandbox Code Playgroud)
调用该程序test_runner并返回0.
该Makefile.am目录如下:
TESTS = test_runner
check_PROGRAMS = test_runner
test_runner_SOURCES = main.cpp
Run Code Online (Sandbox Code Playgroud)
现在,当我执行时make check,摘要输出如下:
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
Run Code Online (Sandbox Code Playgroud)
我的问题是:make check应该检查我的程序的TAP输出(因为我希望得到2次成功和1次失败)如果是这样,我做错了什么?
automake版本是1.13.3,autoconf版本是 2.69.
你应该在你的configure.ac中有这个:
AC_REQUIRE_AUX_FILE([tap-driver.sh])
...
AC_PROG_AWK
Run Code Online (Sandbox Code Playgroud)
这在你的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
Run Code Online (Sandbox Code Playgroud)
该LOG_DRIVER变量是什么使得它调用tap-driver.sh脚本,否则使用默认的通用测试车手.您可以选择为每个文件扩展名定义特定的驱动程序(例如,一个用于.py,另一个用于.sh等),但在这种情况下,单个全局LOG_DRIVER就足够了.
正如用户ecerulm所指出的,tap-driver.pl正在被弃用,所以我改变了答案只考虑tap-driver.sh.
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |