Pregunta Configurar prueba de Google en CLion


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?


32
2017-11-10 19:56


origen


Respuestas:


Crear nuevo proyecto

  1. Crear un repositorio en mi carpeta ClionProjects
    • cd ~/ClionProjects
    • mkdir .repo
    • cd .repo
  2. Clona el DescargarProyecto 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 el DownloadProject.cmake y DownloadProjects.CmakeLists.cmake.in archivos dentro del proyecto.


32
2018-01-01 17:44



1.Git clone el google-test Marco de prueba C ++

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)

3
2017-07-02 11:07



Aquí hay un pequeño ejemplo del proyecto C ++ 11 que usa GoogleTest que solo depende del paquete CMake características (principalmente el ExternalProject módulo y funciona tanto desde adentro CLion y 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. los ExternalProject Sin embargo, el módulo 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.


2
2017-08-11 18:06