Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организовать несколько suite в один проект? Прошу помощи с boost::test 
V
    Опции темы
EvilsInterrupt
Дата 3.5.2012, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Прошу помощи в освоении boost::test.

На данный момент пользуясь <boost/test/unit_test.hpp> организовал несколько cpp-файлов в каждом из них
написана реализация тестирования различных классов.

На данный момент не понимаю, как можно объединить эти ClassOneTest.cpp и ClassTwoTest.cpp в один проект?
А точнее я не понимаю что надо написать в главной функции программы main() , чтобы тесты заработали?

Были попытки использовать бустовое, но когда включаю в cpp-файл <boost\test\included\unit_test.hpp> я получаю
реализацию main() из буста, но при подключении второго cpp в котором тоже это включен этот хидер, то видимо
там тоже main() есть

PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 3.5.2012, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



boost.test особо не использовал. из-за лени, по всей видимости. свои велосипеды рукоблужу.

дока по boost.test славится своей доходчивостью. разве в ней нет ответов на твой вопрос?
или же смотри примеры в <boost root>/libs/test/example
PM WWW   Вверх
EvilsInterrupt
Дата 3.5.2012, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Цитата(boostcoder @ 3.5.2012,  11:56)
boost.test особо не использовал. из-за лени, по всей видимости. свои велосипеды рукоблужу.

дока по boost.test славится своей доходчивостью. разве в ней нет ответов на твой вопрос?
или же смотри примеры в <boost root>/libs/test/example

Пока мои тесты ClassOneTest.cpp и ClassTwoTest.cpp написаны примерно так как указано в:
$(BoostDir)\libs\test\example\unit_test_example_05.cpp

Но вот что дальше? Вот этого пока понять не могу! Должны же как-то все дороги вести в main() , 
но вот как они должны вести, как проложены этого пока понять не могу!
PM MAIL WWW ICQ Jabber   Вверх
EvilsInterrupt
Дата 29.5.2012, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



Сегодня был найден ответ на этот вопрос, благодаря опыту более опытного товарища. Возможно здесь, на форуме меня не совсем поняли. Привожу версию вопроса после чего может быть будет лучше понятней моя проблема:
Цитата

Я привык писать тест для одного класса в виде отдельного *.cpp файла в котором оформлен один Suite включающий себя
множество тестовых случаев нужных для тестирования только для одного этого класса. Сейчас мои *.cpp очень похожи на
то что есть в примере из boost: 
e:\source\boost_1_49_0\libs\test\example\unit_test_example_05.cpp

Вопрос : как несколько *.cpp файлов объединить в одном exe-файле?

Другими словами:
proj:
  ClassOneTest.cpp
  ClassTwoTest.cpp
  appmain.cpp

Как должна быть написана функция main() в файле appmain.cpp?


Ответ товарища:
Цитата

 Я привык писать тест для одного класса в виде отдельного *.cpp файла

Разумно.

> Вопрос : как несколько *.cpp файлов объединить в одном exe-файле?

test_main.cpp

 #define BOOST_TEST_MODULE testMain
 #include <boost/test/unit_test.hpp>

test_1.cpp

 #include <boost/test/unit_test.hpp>

 BOOST_AUTO_TEST_CASE(test1)
 {
          BOOST_CHECK(...);
 }

test_2.cpp

 #include <boost/test/unit_test.hpp>

 BOOST_AUTO_TEST_CASE(test2)
 {
          BOOST_CHECK(...);
 }

Компилируется обычным способом. В статье, кстати, есть пример.

> Как должна быть написана функция main() в файле appmain.cpp?

Ее писать не нужно - она будет развернута из макросов автоматически.


и того:
main.cpp:
Код

#include "std.hpp"

#define BOOST_TEST_MODULE testMain
#include <boost/test/unit_test.hpp>


testOne.cpp:
Код

#include "std.hpp"


#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE( suiteOne )

BOOST_AUTO_TEST_CASE( testOne )
{
    bool a = false;
    BOOST_CHECK( a == true );
}

BOOST_AUTO_TEST_SUITE_END()


testTwo.cpp:
Код

#include "std.hpp"


#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE( suiteTwo )

BOOST_AUTO_TEST_CASE( testTwo )
{
    bool a = false;
    BOOST_CHECK( a == true );
}

BOOST_AUTO_TEST_SUITE_END()


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

Это сообщение отредактировал(а) EvilsInterrupt - 29.5.2012, 21:20
PM MAIL WWW ICQ Jabber   Вверх
boostcoder
Дата 29.5.2012, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



EvilsInterrupt, спасибо, конечно smile 
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.