Запуск Boost.Test без вызова основного метода - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь протестировать части моего кода.Я написал следующий test.h файл:

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(my_test) {
    BOOST_CHECK(true);
}

Если я запускаю тест, вызывается основной метод моего приложения, и поскольку аргументы командной строки отсутствуют, он завершается.Я хочу просто запустить тестовый набор как есть и успешно, так как BOOST_CHECK на true должен быть пройден.Как только это сработает, я буду добавлять вызовы к функциям из моей кодовой базы по одному для регрессионного тестирования.Возможно ли это сделать?Если да, то как?

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

#define BOOST_TEST_NO_MAIN true

1 Ответ

0 голосов
/ 28 декабря 2018

BOOST_TEST_NO_MAIN заставляет Boost.Test опускать свою собственную основную функцию, поэтому она прибегает к основной функции приложений.

В своих модульных тестах не связывайте основную функцию приложений (не добавляйтефайл, содержащий main), и пусть Boost.Test добавит свой собственный main, который будет запускать все ваши тесты.

...