5

我正在维护一个 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呢?

4

1 回答 1

9

至少一种方法涉及设置TESTS变量。以下是关于 automake 的文档说明

如果定义了特殊变量 TESTS,则其值将被视为要运行以进行测试的程序或脚本的列表。

所以添加行

TESTS = $(check_PROGRAMS)

应该指示它在make check.

于 2015-04-18T10:27:38.537 回答