Нет выхода из ускоренного теста - PullRequest
3 голосов
/ 03 февраля 2011

Я пытаюсь реализовать модульное тестирование с помощью библиотек повышения тестов. Я начал с чтения руководства на сайте буста. После этого я делаю простую тестовую программу в одном из моих уже существующих проектов. Единственная проблема, с которой я сталкиваюсь, заключается в том, что я не могу увидеть результат теста. Я уверен, что я делаю что-то не так :), но я не могу понять это. Ниже приведены подробности моего проекта

Я использую Visual Studio8 для этого: У меня есть решение с именем MyProject.sln

Вместе с другими проектами у меня есть проект с именем MyDLL.vcproj (Тип этого проекта DLL )

Наряду с другими файлами в проекте MYDLL я добавляю новое имя файла cpp MyTest.cpp , файл содержит следующий код:

#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
//#define BOOST_TEST_MODULE MyTestTestModue  //no need for this maro if above macro is used
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(SampleTC)
{
    BOOST_CHECK(true);
};    

Я внес следующие изменения в лист свойств проекта MYDLL

C++ -> General -> Additional Include Dependencies = D:\MyProject\Boost\boost\test
Linker -> General -> Additional Libray Directories = D:\MyProject\Boost\lib\win32\Debug
Linker -> System -> SubSystem = (/SUBSYSTEM:CONSOLE)

Я прочитал все детали компиляции, приведенные в руководстве, но все еще не смог получить вывод. В идеале я хочу использовать тест Boost в качестве автономной библиотеки (динамический вариант библиотеки UTF).

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

Я уверен, что делаю что-то не так:)

На самом деле, я думаю, проблема в том, что вы делаете что-то правильно.потому что проверено значение true, и по умолчанию Boost.Test выводит только информацию о неудачных тестах.Вам необходимо установить уровень ведения журнала, что можно сделать одним из двух способов: передать --log_level=all в качестве опции исполняемому файлу теста или задать для переменной среды BOOST_TEST_LOG_LEVEL значение all.

См. эта страница документации для всех параметров времени выполнения.

Редактировать: Это на самом деле --log_level (с подчеркиванием в середине)

1 голос
/ 24 февраля 2014

Наши модульные тесты вызываются через инструмент после компиляции; поэтому мы не можем легко передать параметр в EXE-файл (не изменяя конфигурацию инструмента и не влияя на все тесты).

Таким образом, еще один способ установить пороговое значение уровня журнала - вызвать синглтон Boost unit-test logger из кода:

boost::unit_test::unit_test_log_t::instance().set_threshold_level( boost::unit_test::log_messages );

Для дополнительного удовольствия выведите имя файла и номер строки, где отображается ваше сообщение:

 #define MY_BOOST_TEST_MESSAGE( msg ) BOOST_TEST_MESSAGE( `__FILE__` << `__LINE__` << " " << msg )
...