Есть ли способ управления бустом output_test_stream "запись против проверки" без перекомпиляции?

Я использую класс Boost.Test output_test_stream чтобы убедиться, что мое приложение обеспечивает ожидаемый результат. Этот класс предоставляет простой метод для сравнения выходных данных с записанными в файл хорошо известными данными, вызывая match_pattern() метод. Вот как я это использую:

#if defined( CREATE_TEST_PATTERNS )
    bool pattern_test = false;
#else
    bool pattern_test = true;
#endif
boost::test_tools::output_test_stream ostrg("test_output_ref.txt", pattern_test);
my_class_under_test cl(arg1, arg2, ostrg);
...
BOOST_CHECK( ostrg.match_pattern() );

Желаемый вывод находится в файле test_output_ref.txt. Призыв к match_pattern() сравнивает данные в ostrg к данным в файле. Если реальный pattern_test ложно, призыв к match_pattern() вместо этого сохранит данные из ostrg в файл данных ref test_output_ref.txt,

То, как я использую это, я сначала строю с помощью макроса CREATE_TEST_PATTERNS определил и запустил тестовую программу (тесты выполнялись как шаг после сборки), чтобы собрать выходные данные в файл, визуально проверить выходной файл, чтобы убедиться, что выходные данные были правильными, и затем я перестроил тестовую программу с CREATE_TEST_PATTERNS не определено В этом режиме тест сравнивает ранее записанный ожидаемый результат с результатом, полученным при выполнении теста. Все идет нормально.

У меня такой вопрос: есть ли способ добиться контроля над записью / проверкой поведения match_pattern() без необходимости перекомпилировать тестовую программу?

0 ответов

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