2016-05-26 7 views
1

У меня есть библиотека, внутри которой есть некоторые программы тестирования, написанные с использованием Boost.Test. В тестовых файлах нет #define BOOST_TEST_DYN_LINK или #include <boost/test/included/unit_test.hpp>. У них только #include <boost/test/unit_test.hpp>. Таким образом, функция main() не существует неявно.Пробег с помощью моей основной функции для отладки

Теперь мне нужно отлаживать некоторые функции библиотеки, которые использовались в тестовых случаях. Учитывая, что I не может добавить или изменить что-либо в тестовых программах, как я могу вызвать тестовые программы под отладчиком?

+0

Если вы ничего не можете добавить, то как бы вы добавили свой собственный 'main()'? Вы говорите «программы», которые означают, что есть исполняемый файл. Поэтому просто запустите их в отладчике, как и любой другой исполняемый файл (вы не указали платформу или инструментарий, поэтому я не могу дать вам больше подробностей об этом). | На данный момент вопрос довольно запутанный, пожалуйста, уточните подробнее. –

+0

К сожалению, по программам я имел в виду файлы (файлы CPP), и мне не разрешено изменять эти файлы CPP. Нет исполняемого файла. Но я могу создавать новые файлы и компилировать их для создания исполняемого файла, и это точно мой вопрос, как я могу это сделать? Btw, я использую QtCreator как IDE, g ++ 4.8 на ubuntu. –

+0

Структура, по-видимому, используется [как статическая библиотека] (http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/usage_variants.html#boost_test.usage_variants.static_lib) - поэтому просто следуйте этим инструкциям, чтобы сделать тест-бегун. –

ответ

0

Создайте тестовый бегун (например, main_test.cpp) и свяжите свою библиотеку с этим.

# main_test.cpp 
// --- Boost Includes --- 
#define BOOST_TEST_DYN_LINK 
#include <boost/test/unit_test.hpp> 

Вызов исполняемого файла должен запускать ваши тесты. Затем вы можете отлаживать отдельные тесты, вызывая бегун с помощью ./myrunner --run_test='some_testsuite'/../'some_testname'.