unit test google framework for c++ googletest linuxmint clion

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

  1. Crear un repositorio en mi carpeta ClionProjects
    • cd ~/ClionProjects
    • mkdir .repo
    • cd .repo
  2. Clona el DownloadProject de github
    • git clone https://github.com/Crascit/DownloadProject.git
  3. 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)