Настройка теста Google в CLion
Я уже несколько часов сижу в интернете, пытаясь настроить тест Google на Clion в Linux, но ничего не смог найти.
может кто-нибудь помочь мне с настройкой этого, пожалуйста?
3 ответов
создать новый проект
- создайте репозиторий в моей папке ClionProjects
cd ~/ClionProjects
mkdir .repo
cd .repo
- клон DownloadProject из github
git clone https://github.com/Crascit/DownloadProject.git
- создайте проект C++ с src и тестовым каталогом
добавить следующие файлы:
CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
project(MyProjectName)
add_subdirectory(src)
add_subdirectory(test)
src / CMakeLists.txt
#set(core_SRCS ADD ALL SOURCE FILES HERE)
add_library(core ${core_SRCS})
add_executable(exe main.cpp)
target_link_libraries(exe core)
[мы компилируем библиотеку, чтобы включить ее в тестовый проект]
тест/CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
set(REPO ~/ClionProjects/.repo)
project(Test)
project(Example)
include(CTest)
enable_testing()
#set(gtest_disable_pthreads on) #needed in MinGW
include(${REPO}/DownloadProject/DownloadProject.cmake)
download_project(
PROJ googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
UPDATE_DISCONNECTED 1
)
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
#set(test_SRCS ADD ALL TEST SOURCE FILES HERE)
add_executable(runUnitTests gtest.cpp ${test_SRCS})
target_link_libraries(runUnitTests gtest gmock core)
#add_test(runUnitTests runUnitTests) #included in all tutorials but I don't know what it actually does.
test / gtest.cpp
#include "gtest/gtest.h"
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Примечание: Если вы работаете самостоятельно над проектом git, лучше включить DownloadProject.cmake
и DownloadProjects.CmakeLists.cmake.in
файлы внутри проекта.
1.Клон git тег google-test в C++ тестовой платформы
From https://github.com/google/googletest.git
2.Включите каталоги google-test
#Add the google test subdirectory
add_subdirectory(PATH_TO_GOOGLETEST)
#include googletest/include dir
include_directories(PATH_TO_GOOGLETEST/googletest/include)
#include the googlemock/include dir
include_directories(PATH_TO_GOOGLETEST/googlemock/include)
3. Свяжите свой исполняемый файл с google-test (это после создания исполняемого файла)
#Define your executable
add_executable(EXECUTABLE_NAME ${SOURCE_FILES})
#Link with GoogleTest
target_link_libraries(EXECUTABLE_NAME gtest gtest_main)
#Link with GoogleMock
target_link_libraries(EXECUTABLE_NAME gmock gmock_main)
вот небольшой пример проекта C++11, который использует GoogleTest, который полагается только на упаковке CMake функции (в основном ExternalProject
модуль и работает как изнутри CLion и командная строка *nix.
эта версия показывает "проданы" зависимости, которая может находиться за пределами проекта, если это необходимо. Исходный код всех сборок зависимостей и артефакты сборки содержатся в проекте и не загрязняют узел сборки. Этот ExternalProject
модуль, однако, довольно легко настроить для загрузки определенной версии с удаленного РЕПО.
Дайте мне знать, если что-то нуждается в разъяснении в README.