automake:自动运行单元测试

时间:2015-04-18 09:37:52

标签: unit-testing makefile autoconf automake boost-unit-test-framework

我正在维护一个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运行我的测试?

1 个答案:

答案 0 :(得分:8)

至少有一种方法是设置TESTS变量。这是documentation on automake对此所说的内容:

  

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

添加行

TESTS = $(check_PROGRAMS)

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