Запуск unit-тестов с использованием GoogleTest
Общая информация
Для того чтобы использовать GoogleTest в своём проекте необходимо скачать архив с исходниками gtest,
собрать статическую библиотеку gtest.a
(при желании gtest_main.a
),
добавить в настройки своего проекта пути $GTEST
и $GTEST/include
,
собрать проект, запустить тесты.
Profit!
А теперь к деталям :)
Visual Studio 2012 и выше
В сети можно поискать туториал, как запустить gtest-тесты в visual studio, например, вот этот.
Проверить на практике не удалось, но инструкция выглядит вполне адекватной.
Linux
Самый простой случай.
В большинстве дистрибутивов Linux в репозиториях есть пакет gtest-devel
, который необходимо поставить.
После этого нужно добавить флаги линковщика -lgtest
и, при желании, -lgtest_main
:
g++ -Wall -std=c++14 -lgtest -lgtest_main *.cpp -o runTests
CMake
Самый универсальный способ - должен работать на всех платформах без изменений. Общие сведения про установку CMake описаны здесь.
Создадим папку с проектом task1
, положим туда исходники первой задачи.
Далее распакуем архив с gtest в подпапку task1/gtest-1.7.0
и создадим
файл CMakeLists.txt
.
Содержимое прокта должно выглядеть так:
task1/
+ gtest-1.7.0/ <- исходники gtest здесь
+ build/ <- собираться проект будет здесь
+ CMakeLists.txt
+ LinkedList.h
+ LinkedList.cpp
+ tests.cpp <- тесты здесь
В CMakeLists.txt надо написать следующее:
cmake_minimum_required(VERSION 2.8)
project(LinkedList)
add_subdirectory(gtest-1.7.0)
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
add_executable(task1 LinkedList.cpp tests.cpp)
target_link_libraries(task1 gtest gtest_main)
set_properties(TARGET task1 PROPERTY CXX_STANDARD 14)
set_properties(TARGET task1 PROPERTY CXX_STANDARD_REQUIRED on)
Здесь мы объявляем проект LinkedList
, добавляем поддиректорию gtest-1.7.0
,
говорим, что нужно собрать исполняемый файл task1 и слинковать его с библиотеками gtest
и gtest_main
.
Сборка:
cd build/
cmake ..
cmake --build .
(на Linux вместо cmake --build .
можно просто выполнить make
).
После этого запустить task1
(или task1.exe
), посмотреть на ошибки.
Исправить ошибки, пересобрать командой cmake --build .
.
Повторить.
"Хитрый" способ
Можно попробовать добавить исходники gtest
непосредственно в свой проект и
собирать вместе со своим проектом.
У меня так не получилось, но в вашей группе есть по-крайней мере один человек,
который говорит, что так делал :)