2011-02-03 5 views
3

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

Я использую визуальный studio8 для этого: У меня есть решение под названием MyProject.sln

Наряду с другими проектами у меня есть проект под названием MyDLL.vcproj (The Тип этого проекта 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 как автономный lib (динамический библиотечный varian UTF).

ответ

2

Я уверен, что я делаю некоторые вещи неправильно :)

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

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

См. this page of the documentation для всех параметров времени выполнения.

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

1

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

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

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) 
Смежные вопросы