Запуск 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, который будет запускать все ваши тесты.

Другие вопросы по тегам