Тесты Boost.Test для статической библиотеки - PullRequest
11 голосов
/ 02 февраля 2011

Я использую Boost.Test для модульного тестирования.

По нескольким причинам я хотел бы написать примеры модульных тестов для разных статических библиотек.

Проблема в том, что когдаЯ делаю это, автоматический регистратор не работает.

Например, если у меня есть что-то вроде:

// foo_tests.cpp
#define BOOST_TEST_MODULE "Foo"
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE( Bar )
{
    BOOST_CHECK( false );
}
// used to generate libFooTests.a

// main.cpp
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
// used to generate main.o

Затем, если я связываю main.o с libFooTests.a и выполняюв последнем двоичном файле написано:

Test setup error: test tree is empty

Все работает просто отлично, если я создаю двоичный файл напрямую из исходных кодов, но я не хочу писать модульные тесты внутристатические библиотеки, использующие автоматическую регистрацию.

Можно ли этого добиться?

Есть ли какой-то макрос, который мне нужно определить?Какой-то символ, который мне нужно экспортировать из libFooTests.a?

Спасибо!

1 Ответ

1 голос
/ 02 февраля 2011

Как принудительно включить «неиспользуемые» определения объектов в библиотеку

Это ваша проблема, и вам нужно будет найти решение, подобное тому, что я сделал в своем ответе.

...