bonjour,
j'essaye de configurer GoogleTest sur CLion il semblerais que j'y soit finalement arriver en suivant le tutoriel suivant
https://medium.com/@TimothyHelton/c-...n-d508f6f4ad05
en tout cas le teste par défaut fonctionne, mais je n'arrive pas a effectuer mes propres Test par example
ceci et un test bateau la fonction me retourne False
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include "gtest/gtest.h" #include "../../src/DataMapper/h/RulesDataMapper.h" TEST(Rule_DataMapper, Evaluate) { RulesDataMapper* r1 = new RulesDataMapper(); ERulesName e = Rule_1_2s; ASSERT_FALSE(r1->updateWithNameAndStatement(e, true)); }
mais lorsque j'execute le test un erreur est retourner :
voici également mes fichiers CmakeList
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CMakeFiles\Unit_Tests_run.dir/objects.a(test_example.cpp.obj): In function `ZN29Rule_DataMapper_Evaluate_Test8TestBodyEv': C:/Users/Desktop/Westguard-SSM/WestgardBrick/tests/unit_tests/test_example.cpp:18: undefined reference to `RulesDataMapper::RulesDataMapper()' collect2.exe: error: ld returned 1 exit status mingw32-make.exe[3]: *** [tests\unit_tests\CMakeFiles\Unit_Tests_run.dir\build.make:100: tests/unit_tests/Unit_Tests_run.exe] Error 1 mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:408: tests/unit_tests/CMakeFiles/Unit_Tests_run.dir/all] Error 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:420: tests/unit_tests/CMakeFiles/Unit_Tests_run.dir/rule] Error 2 mingw32-make.exe: *** [Makefile:241: Unit_Tests_run] Error 2
le CMakeList General
CMakeList de mes Test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 cmake_minimum_required(VERSION 3.9) project(WestgardBrick) set(CMAKE_CXX_STANDARD 11) set(SOURCE_FILES ../../cpp_project_template-master/main.cpp) add_executable(${CMAKE_PROJECT_NAME}_run ${SOURCE_FILES}) include_directories(WestgardBrick/src) add_subdirectory(src) add_subdirectory(tests) target_link_libraries(${CMAKE_PROJECT_NAME}_run ${CMAKE_PROJECT_NAME}_lib) # Doxygen Build option(BUILD_DOC "Build Documentation" ON) find_package(Doxygen) if(DOXYGEN_FOUND) set(BUILD_DOC_DIR ${CMAKE_SOURCE_DIR}/build/docs) if(NOT EXISTS ${BUILD_DOC_DIR}) file(MAKE_DIRECTORY ${BUILD_DOC_DIR}) endif() set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile) set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY) message("Doxygen buld started") add_custom_target(Doxygen ALL COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen" VERBATIM) else(DOXYGEN_FOUND) message("Doxygen needs to be installed to generate the documentation.") endif(DOXYGEN_FOUND)
CMakeList de mon code source:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 project(${CMAKE_PROJECT_NAME}_tests) # Clone Google Test set(GOOGLETEST_DIR ${CMAKE_SOURCE_DIR}/tests/lib/googletest) if(NOT EXISTS ${GOOGLETEST_DIR}) find_package(Git REQUIRED) execute_process( COMMAND ${GIT_EXECUTABLE} clone https://github.com/google/googletest ${GOOGLETEST_DIR} ) endif() add_subdirectory(lib/googletest) add_subdirectory(unit_tests)
il est fortement probable que mon erreur se trouve dans les CMakeList car je débute avec CMake
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 project(${CMAKE_PROJECT_NAME}_lib) set(HEADER_FILES ) set(SOURCE_FILES ) if (EXISTS ${SOURCE_FILES}) # The library contains header and source files. add_library(${CMAKE_PROJECT_NAME}_lib STATIC ${SOURCE_FILES} ${HEADER_FILES} ) else() # The library only contains header files. add_library(${CMAKE_PROJECT_NAME}_lib INTERFACE) endif()
Partager