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
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));
}
ceci et un test bateau la fonction me retourne False

mais lorsque j'execute le test un erreur est retourner :
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
voici également mes fichiers CmakeList

le CMakeList General
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 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
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)
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
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()
il est fortement probable que mon erreur se trouve dans les CMakeList car je débute avec CMake