LINUX.ORG.RU

Использование google test framework


0

1

Всем привет. Пытаюсь разобраться с юнит-тестированием. Решил использовать Google Test Скачал gtest-1.5.

Никак не могу понять что там к чему прикручивать (

Прочитал README из архива, доки на сайте http://code.google.com/p/googletest/wiki/V1_5_Primer

Понял уже как писать сами тесты, а вот как их использовать с моим кодом - до конца не доходит. Вообще, не доходит.

Если можно, распишите на пальцах, как запустить элементарный тест.

Система AltLinux 4.1

PS: я не программист, я только учусь. В линуксе я тоже не ас, но немного соображаю)



Последнее исправление: mumuka (всего исправлений: 1)

По приведенной ссылке в секции «Simple Tests» вызывается функция Factorial. Так вот, это и есть твой код. Ты написал эту функцию и теперь ее вызываешь, чтобы проверить, что она возвращает.

dimv
()
Ответ на: комментарий от dimv

Спасибо!

Непонятно - как запустить сами тесты.

Вот я засунул этот код из примера в /home/mumuka/tests/simpletest.cс.
Рядом лежит сам код функции в factorial.cpp.

А что дальше делать?

gtest лежит в /home/mumuka/gtest
оттуда запускал ./configure && make && make install
Все файлы разложились по нужным каталогам в /usr/local/ (bin, include, src, lib)

Я, видимо, туплю сильно...

mumuka
() автор топика
Ответ на: комментарий от mumuka

там всё просто, вот Вам простая заглушка:

main.cpp:

#include "gtest\gtest.h"
#include "my_unittest.hpp"

int main(int argc, char* argv[]){
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

my_unittest.hpp:

#include "gtest\gtest.h"

TEST(simple_test, dummy) {
    ASSERT_TRUE(true)
}

запустится 1 тест, который выполнится положительно

shty ★★★★★
()
Ответ на: комментарий от shty

для того чтобы она заработала надо проект слинковать с либой gtest (static или shared - пофиг) и добавить директорию include (там лежит директория gtest) в путь поиска инклюдов

//да, я для unittest'ов делаю обычно отдельный проект

shty ★★★★★
()
Ответ на: комментарий от shty



Кажется, я начал немного догонять, но появляется ошибка при линковке c либой gtest.

Делаю так:

$ g++ -Wall -Wextra main.cpp /usr/local/lib/libgtest.so -o unittest

Результат:
/usr/local/lib/libgtest.so: undefined reference to `pthread_key_create'
/usr/local/lib/libgtest.so: undefined reference to `pthread_getspecific'
/usr/local/lib/libgtest.so: undefined reference to `pthread_key_delete'
/usr/local/lib/libgtest.so: undefined reference to `pthread_setspecific'
collect2: выполнение ld завершилось с кодом возврата 1

Если линковать статически, то то же самое только в большем количестве и подробностях :)

Также пробовал запускать make из gtest/make - там должен скомпилиться простой тест из примеров. И также на этапе линковки появляется та же ошибка.

Надо добавить какую-то либу?

mumuka
() автор топика
Ответ на: комментарий от aho

Заработало, спасибо!

Но я всё пытаюсь собрать тест из примеров с помощью gtest/make/Makefile
там, в Makefile, -lpthread есть, а всё-равно не собирается, с той же ошибкой...

mumuka
() автор топика
Ответ на: комментарий от mumuka

я Вам рекомендую написать его ручками, в качестве упражнения, начиная с того шаблона который я Вам показал

всё должно работать

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.