automake:自动 运行 单元测试

automake: automatically run unit tests

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

(我认为你不需要我的测试用例的内容来回答我的问题,所以我暂时省略了它们)

那么我怎样才能在每次 运行 make check 时进行 automake 运行 测试?

至少一种方法涉及设置 TESTS 变量。 documentation on automake 是这样说的:

If the special variable TESTS is defined, its value is taken to be a list of programs or scripts to run in order to do the testing.

所以添加行

TESTS = $(check_PROGRAMS)

应该指示它 运行 在 make check 上进行测试。