Нет выходных данных из теста Boost

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

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

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

Наряду с другими файлами в MYDLL proj я добавляю новое имя файла 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).


person Jame    schedule 03.02.2011    source источник


Ответы (2)


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

На самом деле, я думаю, проблема в том, что ты делаешь что-то правильно.

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

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

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

person AFoglia    schedule 04.02.2011

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

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

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 )
person user3099903    schedule 24.02.2014