我的 C++ 应用程序有各种基于 shell 的独立程序集成测试以及应用程序 API 的源代码单元测试。测试通过make check
目标运行,通过 Autotools (autoconf, automake) 生成,带有测试驱动程序和日志解析器。我已经开始采用 Boost 单元测试框架来更好地管理单元测试套件。有没有办法在make check
目标下运行验收测试和单元测试(同时使用 Boost UTF 和标准 TAP 测试)?
我Makefile.am
看起来像这样:
check_PROGRAMS = test1 test2
SOURCES = test1.cpp test2.cpp
CC = g++
TESTS = $(check_PROGRAMS) standalone1.test standalone2.test
LDADD = -lboost_unit_test_framework
TEST_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
$(top_srcdir)/test/tap-driver.sh
EXTRA_DIST = $(TESTS)
Boost UTF 测试套件如下所示:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE "My Unit Tests"
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(MyTestSuite1);
BOOST_AUTO_TEST_CASE(MyTestCase1) {
BOOST_CHECK(true);
}
BOOST_AUTO_TEST_SUITE_END();