Для того чтобы модуль тестирования блоков успешно связывался и выполнялся, он должен иметь доступ к функции инициализации модуля тестирования . Функция инициализации модуля называется только один раз во время выполнения программы, непосредственно перед запуском тестового модуля runner. По умолчанию Unit Test Framework предоставляет по умолчанию определение функции инициализации. Единственное, что вам нужно сделать, это проинструктировать фреймворк, в котором блок перевода (cpp файл) должен предоставить определение. Вы делаете это, определяя макрос BOOST_TEST_MODULE в назначенном файле. Реализация по умолчанию присваивает имя модулю test, а также набору master test suite. Имя, которое будет присвоено, определяется значением макроса BOOST_TEST_MODULE.
Important
Для тестового модуля, состоящего из нескольких исходных файлов, необходимо определить BOOST_TEST_MODULE только в одном тестовом файле. В противном случае вы получите несколько экземпляров функции инициализации.
Практически нет необходимости изменять поведение по умолчанию функции инициализации тестового модуля. Unit Test Framework предоставляет превосходные инструменты для выполнения задач настройки:
для автоматической регистрации тестовых случаев и тестовых наборов в тест-дереве, см. раздел Организация тестирования;
для того, чтобы присвоить пользовательское имя мастеру тестового набора, определите макрос BOOST_TEST_MODULE до желаемого значения;
для доступа к параметрам командной строки (за исключением тех, которые потребляются Unit Test Framework) используйте интерфейс master test suite;
для того, чтобы выполнить глобальную инициализацию состояния, требуемого тестовыми случаями, глобальные приборы предлагают превосходную альтернативу: вы можете указать глобальную настройку и срыв в одном месте, разрешить доступ к глобальным данным из каждого тестового случая и гарантировать, что очистка и срыв повторяются каждый раз, когда тесты повторяются во время выполнения программы;
если необходимость инициализации пользовательского модуля обусловлена только устаревшим кодом (написанным против старых версий Unit Test Framework), рекомендуется обновить код программы.
Функция инициализации по умолчанию, предоставляемая фреймворком, определяется следующей подписью в глобальном пространстве имен:
boolinit_unit_test();
Возвратное значение истинное указывает на успешную инициализацию. Значение ложное указывает на сбой инициализации.
Для преодоления определения по умолчанию:
см. здесь для одного варианта использования заголовка,
см. здесь , для варианта использования статической библиотеки,
см. здесь , для общего варианта использования библиотеки.
Статья Test module's initialization раздела Boost.Test Advanced Usage Scenarios может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.