Как установить, какой модульный тест Boost запускать

Я пытаюсь использовать ускоренный тест и, в частности, повысить модульное тестирование.

Я явно не понимаю, как генерируется и вызывается основная функция, все, что говорится в учебнике, - это определить модуль и написать тест.

#define BOOST_TEST_MODULE EnfTraderTest

BOOST_AUTO_TEST_CASE(CalculateExpectedPriceTest){BOOST_ERROR("Oops");}

Но как мне сказать моей программе запустить этот тест? У меня уже есть основная функция, я хотел бы решить, запускать тест или нет, из моей основной функции.


person 0x26res    schedule 24.02.2011    source источник
comment
Дубликат stackoverflow.com/q/963158/232490?   -  person Xepo    schedule 07.03.2011
comment
Возможный дубликат Как выполнить наборы тестов на основе требований в библиотеке boost.test   -  person Jørgen Fogh    schedule 03.11.2015


Ответы (1)


Самый простой способ сделать это — записать тесты в один файл .cpp и определить макрос BOOST_TEST_MODULE перед включением unit_test.hpp. Затем вы можете скомпилировать этот .cpp файл и выполнить его. Если у вас есть тесты в нескольких .cpp-файлах, просто соедините их все вместе, но позаботьтесь о том, чтобы BOOST_TEST_MODULE или BOOST_TEST_MAIN были определены ровно в одном из них.

Вы можете использовать параметр командной строки run_test для запуска только подмножества тестов, по умолчанию выполняются все тесты.

person Björn Pollex    schedule 07.03.2011
comment
Примечание к run_test: если вы используете подстановочные знаки (например, --run_test=*foo*), в зависимости от вашей оболочки вам может потребоваться экранировать подстановочные знаки (например, --run_test=\*foo\*). Это только что случилось со мной с zsh. - person BenC; 15.05.2015