Meine C++ - Anwendung verfügt über verschiedene Shell-basierte Integrationstests für eigenständige Programme sowie Quellcode-Komponententests für die API der Anwendung. Die Tests laufen durch das Ziel make check
, das durch Autotools (autoconf, automake) generiert wird, welches come with a test-driver and a log parser. Ich habe begonnen, das Boost Unit Test Framework für ein besseres Management von Unit-Test-Suites zu übernehmen. Gibt es eine Möglichkeit, sowohl die Abnahmetests als auch die Komponententests unter Verwendung des Boost UTF- und des Standard-TAP-Tests unter dem Ziel make check
durchzuführen?Verwenden des Boost Unit Test Framework (UTF) mit `make check`
Mein Makefile.am
sieht ungefähr so aus:
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)
Die Boost UTF-Test-Suite wie folgt aussieht:
#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();