私の C++ アプリケーションには、スタンドアロン プログラム用のさまざまなシェルベースの統合テストと、アプリの API 用のソース コード単体テストがあります。テストは、テスト ドライバーとログ パーサーが付属make check
する Autotools (autoconf、automake) によって生成されたターゲットを介して実行されます。単体テスト スイートの管理を改善するために、Boost Unit Test Framework の採用を開始しました。ターゲットの下で受け入れテストと単体テストの両方を (ブースト UTF テストと標準 TAP テストの両方を使用して) 実行する方法はありますか?make check
私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();