c++ - test - Configurar prueba de Google en CLion
google test install (3)
He estado sentado en línea durante horas tratando de configurar Google test en Clion en Linux pero no he podido encontrar nada.
¿Alguien puede guiarme para configurar esto, por favor?
Crear nuevo proyecto
- Crear un repositorio en mi carpeta ClionProjects
cd ~/ClionProjects
-
mkdir .repo
-
cd .repo
- Clona el DownloadProject de github
-
git clone https://github.com/Crascit/DownloadProject.git
-
- Crear un proyecto de C ++ con un src y directorio de prueba
Agregue los siguientes archivos:
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)
[Compilamos una biblioteca para que podamos incluirla dentro del proyecto de prueba]
prueba / 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();
}
Nota: si trabajas en un Proyecto git, es mejor incluir los archivos DownloadProject.cmake
y DownloadProjects.CmakeLists.cmake.in
dentro del proyecto.
Aquí hay un pequeño ejemplo del proyecto C ++ 11 que usa GoogleTest que solo se basa en las características de CMake empaquetadas (principalmente el módulo ExternalProject
y funciona tanto desde CLion como desde una línea de comando * nix.
Esta versión muestra dependencias "guardadas", que pueden residir fuera de un proyecto si es necesario. Todos los códigos fuente y los artefactos de compilación de las dependencias están contenidos en el proyecto y no contaminan el host de compilación. Sin embargo, el módulo ExternalProject
es bastante fácil de ajustar para descargar una versión específica de un repositorio remoto.
Avíseme si algo necesita aclaración en README.
1.Git clone el marco de google-test C ++ de google-test
From https://github.com/google/googletest.git
2. Incluir los directorios de 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. Enlace su ejecutable con google-test (Esto es después de crear su ejecutable)
#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)