web-dev-qa-db-fra.com

Configurer le test Google dans CLion

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

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

37
user2955610

Créer un nouveau projet

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

Ajoutez 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 afin de pouvoir l'inclure dans le projet 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.

test/gtest.cpp

#include "gtest/gtest.h"

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

Remarque: si vous travaillez vous-même 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.

37
Dornathal

1.Git clone le google-test Framework de test C++

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

2.Incluez 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 (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)
6
Victor Mwenda

Voici un petit exemple de projet C++ 11 qui utilise GoogleTest qui ne repose que sur des fonctionnalités packagées CMake (principalement les - ExternalProject module et fonctionne à la fois depuis l'intérieur CLion et une ligne de commande * nix.

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

Faites-moi savoir si quelque chose doit être clarifié dans README.

2
Vlad Didenko