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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Boost Test, не могу собрать тесты 
:(
    Опции темы
Mephisto
Дата 19.3.2011, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


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

Репутация: нет
Всего: 34



Нашел тут пример как подружить Boost и Cmake.
Сделал следующий пример:
Код

#include <boost/test/unit_test.hpp>

#define BOOST_TEST_MODULE testCalculator


class Calculator
{
public:
    explicit Calculator(int value)
        : Value_(value)
    {
    }
    
    void Divide(int value)
    {
        if (value == 0)
        {
            throw std::invalid_argument("Деление на ноль!");
        }
        Value_ /= value;
    }
    
    void Multiply(int value)
    {
        Value_ *= value;
    }
    
    int Result() const
    {
        return Value_;
    }
    
private:
    int Value_;
};

BOOST_AUTO_TEST_SUITE(testSuiteCalculator) // Начало набора тестов

BOOST_AUTO_TEST_CASE(testCalculator)
{
    Calculator calculator(12);
    BOOST_CHECK_EQUAL(calculator.Result(), 12);
    calculator.Divide(3);
    BOOST_CHECK_EQUAL(calculator.Result(), 4);
    calculator.Divide(2);
    BOOST_CHECK_EQUAL(calculator.Result(), 2);
    calculator.Multiply(2);
    BOOST_CHECK_EQUAL(calculator.Result(), 4);
    calculator.Multiply(3);
    BOOST_CHECK_EQUAL(calculator.Result(), 12);
}

BOOST_AUTO_TEST_SUITE_END() // Конец набора тестов


и следующий CMakeLists.txt:
Код

project(someTest)
cmake_minimum_required(VERSION 2.6)

set (TESTS_SOURCES
    BoostTest.cpp
    )


find_package (Boost COMPONENTS unit_test_framework REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
set (TEST test_${PROJECT})
add_executable (${TEST} ${TESTS_SOURCES})
target_link_libraries (${TEST} ${PROJECT} ${Boost_LIBRARIES})
enable_testing ()
add_test (${TEST} ${TEST})



При компиляции пишет следующее:
Код

/home/max/projects/liveTVViewer/build> make
Scanning dependencies of target test_
[100%] Building CXX object UnitTests/CMakeFiles/test_.dir/BoostTest.cpp.o
Linking CXX executable test_
/usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o: In function `_start':
/usr/src/packages/BUILD/glibc-2.11.3/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld returned 1 exit status
make[2]: *** [UnitTests/test_] Error 1
make[1]: *** [UnitTests/CMakeFiles/test_.dir/all] Error 2
make: *** [all] Error 2
*** Ошибка ***

В чем может быть проблема? Может время позднее и нужно немного поспать... ))

Добавлено через 57 секунд
CTest пишет что тесты не найдены.
PM   Вверх
Mephisto
Дата 22.3.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


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

Репутация: нет
Всего: 34



Блин, не понимаю. В винде тоже не компилится, пишет:
Цитата

Ошибка    2    error LNK2019: ссылка на неразрешенный внешний символ "class boost::unit_test::test_suite * __cdecl init_unit_test_suite(int,char * * const)" (?init_unit_test_suite@@YAPAVtest_suite@unit_test@boost@@HQAPAD@Z) в функции _main    libboost_unit_test_framework-vc90-mt-gd-1_44.lib    testBoost

Хоть уже примеры взял и попробовал.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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