Как настроить googletest на Linux в 2012 году?
Я использую машину Linux.
Я загрузил пакет googletest из здесь
Однако, нет руководства по установке или других блогов, связанных с тем, как правильно настроить его
Файл README не подходит, я не могу понять, о чем он говорит?
Может ли кто-нибудь предоставить простой пример того, как проверить простую функцию внутри .cc файла с этим пакетом gtest?
Ответы
Ответ 1
Вот что я сделал, и вы можете при необходимости настроить. Я загрузил gtest-1.6.0.zip(со страницы releases) на моем Linux-поле в ~/Downloads, который был полностью напечатан/главная/мне/Загрузки/
Разархивируйте содержимое файла gtest-1.6.0.zip в ~/Downloads/gtest-1.6.0/
cd /home/me/Downloads
unzip gtest-1.6.0.zip
Создайте библиотеку gtest, потому что вам нужно "включить" в свой тестовый исполняемый файл.
Скомпилируйте файл объекта gtest-all.o:
g++ -Igtest-1.6.0/include -Igtest-1.6.0 -c gtest-1.6.0/src/gtest-all.cc
Затем создайте библиотечный архив libgtest.a:
ar -rv libgtest.a gtest-all.o
Теперь вы можете создать свой файл test.cc в ~/Downloads. Вот пример тестового файла, который я использовал, чтобы убедиться, что он компилируется.
#include "gtest/gtest.h"
TEST(blahTest, blah1) {
EXPECT_EQ(1, 1);
}
int main (int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
int returnValue;
//Do whatever setup here you will need for your tests here
//
//
returnValue = RUN_ALL_TESTS();
//Do Your teardown here if required
//
//
return returnValue;
}
Чтобы скомпилировать свой собственный тест и запустить его:
g++ -I/home/me/Downloads/gtest-1.6.0/include -pthread test.cc libgtest.a -o test_executable
Затем выполните его:
./test_executable
И он должен работать нормально. Измените по мере необходимости.
Ответ 2
Эти инструкции заставляют среду тестирования работать для конфигурации Debug.
Загрузите Google C++ Testing Framework
1. Загрузите последнюю платформу gtest
2. Распакуйте в C:\gtest
Сборка рамочных библиотек
1. Откройте C:\gtest\msvc\gtest.sln
в Visual Studio.
2.Установите настройку на "Отладка"
Решение 3.Build
Создайте и настройте свой тестовый проект
1. Создайте новое решение и выберите шаблон Visual C++> Win32> Консольное приложение Win32.
2. Щелкните правой кнопкой мыши по вновь созданному проекту и выберите "Свойства".
3.Измените конфигурацию для отладки.
4. Конфигурационные свойства> C/C++> Общие> Дополнительные каталоги включения: Добавить C:\gtest\include
5.Настройки конфигурации> C/C++> Генерация кода> Библиотека времени выполнения: Если ваш код связан с библиотекой времени выполнения, выберите Многопоточную библиотеку отладки (/MDd). Если нет, выберите Многопоточная отладка (/MTd).
6.Настройки конфигурации> Linker> General> Дополнительные каталоги библиотеки: Добавьте C:\gtest\msvc\gtest\Debug
7. Конфигурационные свойства> Линкер> Ввод> Дополнительные зависимости: Добавьте gtestd.lib
Проверка, что все работает
1. Откройте cpp в вашем тестовом проекте, содержащем функцию main()
.
2. Вставьте следующий код:
#include "stdafx.h"
#include <iostream>
#include "gtest/gtest.h"
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 1);
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
std::getchar(); // keep console window open until Return keystroke
}
1. Отладка> Начать отладку
Если это работает, вы должны увидеть открытое окно консоли с результатами вашего теста.
Ответ 3
Приложение к ответу Джеймса С.
Обратите внимание, что для сборки библиотеки с использованием gtest-1.6.0/src/gtest-all.cc
вам потребуется предоставить метод main самостоятельно. Если вы хотите вообще избежать этого и использовать стандартную реализацию основного метода, предоставляемого Googletest, создайте свою библиотеку, включая gtest_main.cc
.
То есть:
g++ -Igtest-1.6.0/include -Igtest-1.6.0 -c gtest-1.6.0/src/gtest-all.cc gtest-1.6.0/src/gtest_main.cc
^^^^^^^^^^^^^^
ar -rv libgtest_main.a gtest_main.o gtest-all.o
^^^^^^^^^^^^
Также имейте в виду, что реализация собственного метода main не является рекомендуемым способом определения поведения SetUp
и TearDown
; Вы должны использовать светильники вместо этого. Проверьте Googletest документацию по теме.
Ответ 4
взгляните на дом проекта:
относительно имеющейся документации.
Если у вас есть более конкретные вопросы, вы также можете задать в группе Google: