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?
3 réponses
Créer un nouveau Projet
- créer un référentiel dans mon dossier ClionProjects
cd ~/ClionProjects
mkdir .repo
cd .repo
- cloner le DownloadProject de github
git clone https://github.com/Crascit/DownloadProject.git
- 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.
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)
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.