Запуск Boost.Test без вызова основного метода
Я пытаюсь проверить части моего кода. Я написал следующее 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 ответ
BOOST_TEST_NO_MAIN
заставляет Boost.Test опускать свою собственную основную функцию, поэтому она прибегнет к основной функции приложения.
В своих модульных тестах не связывайте основную функцию приложения (не добавляйте файл, содержащий main
), и пусть Boost.Test добавит свой собственный main, который будет запускать все ваши тесты.