我正在维护一个autoconf包并希望集成自动测试。我使用Boost Unit Test Framework
进行单元测试,并且能够成功地将其集成到包中。
也就是说它可以通过make check
编译,但是没有运行(虽然我读到make check
编译并运行测试)。因此,我必须在构建繁琐的测试后手动运行它。
Makefile.am
如下所示:
check_PROGRAMS = prog_test
prog_test_SOURCES = test_main.cpp ../src/class1.cpp class1_test.cpp class2.cpp ../src/class2_test.cpp ../src/class3.cpp ../src/class4.cpp
prog_test_LDADD = $(BOOST_FILESYSTEM_LIB) $(BOOST_SYSTEM_LIB) $(BOOST_UNIT_TEST_FRAMEWORK_LIB)
根文件夹中的 Makefile.am
:
SUBDIRS = src test
dist_doc_DATA = README
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
运行test/prog
会产生输出:
Running 4 test cases...
*** No errors detected
(我不认为你需要我的测试用例的内容才能回答我的问题,所以我现在省略了它们)
那么每次运行automake
时如何让make check
运行我的测试?
答案 0 :(得分:8)
至少有一种方法是设置TESTS
变量。这是documentation on automake对此所说的内容:
如果定义了特殊变量TESTS,则其值将被视为要运行以执行测试的程序或脚本列表。
添加行
TESTS = $(check_PROGRAMS)
应指示它在make check
上运行测试。