Configuration du test Google dans CLion

Je suis assis en ligne depuis des heures déjà en essayant de configurer Google test sur Clion sous Linux, mais je n'ai rien trouvé.

Quelqu'un peut-il me guider avec la mise en place s'il vous plait?

32
demandé sur user2955610 2015-11-10 22:56:31

3 réponses

Créer un nouveau Projet

  1. créer un référentiel dans mon dossier ClionProjects
    • cd ~/ClionProjects
    • mkdir .repo
    • cd .repo
  2. cloner le DownloadProject de github
    • git clone https://github.com/Crascit/DownloadProject.git
  3. créez un projet C++ avec un répertoire src et test

Ajouter les fichiers suivants:

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)

[ nous compilons une bibliothèque pour pouvoir l'inclure à l'intérieur du projet de Test]

Test / 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.

Essai / gtest.rpc

#include "gtest/gtest.h"

int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

Remarque: si vous travaillez sur un Projet git, il est préférable d'inclure le DownloadProject.cmake et DownloadProjects.CmakeLists.cmake.in fichiers à l'intérieur du projet.

33
répondu Dornathal 2016-05-22 15:40:46

1.Git clone le cadre de testgoogle-test C++

From https://github.com/google/googletest.git

2.Inclure les répertoires 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. Liez votre exécutable avec google-test (ceci après avoir créé votre exécutable)

#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
répondu Victor Mwenda 2017-07-02 11:07:17

Voici un petit exemple de projet C++11 qui utilise GoogleTest {[4] } qui ne repose que sur des fonctionnalités cmake empaquetées (principalement le ExternalProject module et fonctionne à la fois de l'intérieur CLion et une ligne de commande *nix.

Cette version affiche les dépendances "vendored", qui peuvent résider en dehors d'un projet si nécessaire. Le code source et les artefacts de construction de toutes les dépendances sont contenus dans le projet et ne polluent pas l'hôte de construction. Le module ExternalProject est cependant assez facile pour ajuster pour télécharger une version spécifique d'un repo distant.

Faites-moi savoir si quelque chose a besoin d'être clarifié dans README.

2
répondu Vlad Didenko 2016-10-01 16:40:34