我正在维护一个autoconf包,并希望集成自动化测试。我使用
在根目录下的
Boost Unit Test Framework
进行单元测试,并成功地将其集成到该包中。这意味着可以通过make check
编译它,但是它不会运行(尽管我读到make check
既编译又运行测试)。因此,在构建测试后,我必须手动运行它,这很麻烦。test
文件夹中的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
时都运行我的测试呢?
test/Makefile.am
和Makefile.am
中都没有生效。位置是否很重要? - Paddretest/Makefile.am
中,根Makefile将调用它。确保在更改后重新生成Makefile.in
和Makefile
,一种简单的方法可能是运行make distclean
。 - xaizekprog_test
,但可执行文件名为prog
。请尝试使用TESTS = prog
。 - xaizekTEST
而不是TESTS
-.-)。在执行automake --add-missing
(安装了test-driver程序)之后,它可以正常工作(使用TESTS = $(check_PROGRAMS)
)。非常感谢您 :-) - Paddre