2016-12-06 1 views
-2

Je veux utiliser Googletest dans mon projet CLion. Voici donc ce que j'ai fait: J'ai copié mon dossier googletest dans le dossier lib de mon projet. j'ai changé mes fichiers CMakeLists.txt comme décrit dans cette vidéo: https://youtu.be/8Up5eNZ0FLw et créé ce test simple:Comment faire fonctionner googletest dans CLion?

#include "gtest/gtest.h" 
TEST(basic_check, test_eq){ 
    EXPECT_EQ(1,0); 
} 

j'ai essayé de lancer le test en appuyant sur Maj + Ctrl + F10 et j'obtenu l'erreur suivante:

"F:\Programs\CLion 2016.3\bin\cmake\bin\cmake.exe" --build C:\Users\Christian\ClionProjects\Geldautomat\cmake-build-debug --target runBasicTests -- -j 4 
[ 16%] Building CXX object Tests/lib/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.obj 
In file included from C:/Users/Christian/ClionProjects/Geldautomat/Tests/lib/googletest/include/gtest/internal/gtest-internal.h:40:0, 
       from C:/Users/Christian/ClionProjects/Geldautomat/Tests/lib/googletest/include/gtest/gtest.h:58, 
       from C:\Users\Christian\ClionProjects\Geldautomat\Tests\lib\googletest\src\gtest-all.cc:39: 
C:/Users/Christian/ClionProjects/Geldautomat/Tests/lib/googletest/include/gtest/internal/gtest-port.h: In function 'int testing::internal::posix::StrCaseCmp(const char*, const char*)': 
C:/Users/Christian/ClionProjects/Geldautomat/Tests/lib/googletest/include/gtest/internal/gtest-port.h:2328:25: error: '_stricmp' was not declared in this scope 
return _stricmp(s1, s2); 
        ^
mingw32-make.exe[3]: *** [Tests/lib/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.obj] Error 1 
mingw32-make.exe[2]: *** [Tests/lib/googletest/CMakeFiles/gtest.dir/all] Error 2 
mingw32-make.exe[1]: *** [Tests/basic_tests/CMakeFiles/runBasicTests.dir/rule] Error 2 
mingw32-make.exe: *** [runBasicTests] Error 2 
Tests\lib\googletest\CMakeFiles\gtest.dir\build.make:62: recipe for target 'Tests/lib/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.obj' failed 
CMakeFiles\Makefile2:162: recipe for target 'Tests/lib/googletest/CMakeFiles/gtest.dir/all' failed 
CMakeFiles\Makefile2:267: recipe for target 'Tests/basic_tests/CMakeFiles/runBasicTests.dir/rule' failed 
Makefile:200: recipe for target 'runBasicTests' failed 

mon CMakeLists.txt dans ce répertoire est:

include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) 

add_executable(runBasicTests 
     basic_check.cpp) 

target_link_libraries(runBasicTests gtest gtest_main) 
target_link_libraries(runBasicTests src) 

Lorsque mon code source se trouve dans directo ry src. Mon main.cpp est dans le répertoire racine et mon test de base est en Tests/basic_tests

J'ai essayé la même chose sur mon portable Linux avec CLion. Vous avez l'erreur:

/home/christian/Downloads/clion-2016.3/bin/cmake/bin/cmake --build /home/christian/ClionProjects/Geldautomat/cmake-build-debug --target runBasicTests -- -j 4 
Scanning dependencies of target gtest 
[ 16%] Building CXX object Tests/lib/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o 
[ 33%] Linking CXX static library libgtest.a 
[ 33%] Built target gtest 
Scanning dependencies of target gtest_main 
[ 50%] Building CXX object Tests/lib/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o 
[ 66%] Linking CXX static library libgtest_main.a 
[ 66%] Built target gtest_main 
Scanning dependencies of target runBasicTests 
[ 83%] Building CXX object Tests/basic_tests/CMakeFiles/runBasicTests.dir/basic_check.cpp.o 
[100%] Linking CXX executable runBasicTests 
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lsrc 
collect2: error: ld returned 1 exit status 
Tests/basic_tests/CMakeFiles/runBasicTests.dir/build.make:97: recipe for target 'Tests/basic_tests/runBasicTests' failed 
gmake[3]: *** [Tests/basic_tests/runBasicTests] Error 1 
CMakeFiles/Makefile2:256: recipe for target 'Tests/basic_tests/CMakeFiles/runBasicTests.dir/all' failed 
gmake[2]: *** [Tests/basic_tests/CMakeFiles/runBasicTests.dir/all] Error 2 
CMakeFiles/Makefile2:268: recipe for target 'Tests/basic_tests/CMakeFiles/runBasicTests.dir/rule' failed 
gmake[1]: *** [Tests/basic_tests/CMakeFiles/runBasicTests.dir/rule] Error 2 
Makefile:201: recipe for target 'runBasicTests' failed 
gmake: *** [runBasicTests] Error 2 

Ce serait bien si mon projet fonctionne sur Linux ..

Toutes les suggestions?

-ChrizZ

+0

'src' n'est pas une bibliothèque, donc supprimez cette ligne:' target_link_libraries (runBasicTests src) ' – drescherjm

+0

ok. Cela a fonctionné sur Linux. Je peux donc y travailler d'une manière ou d'une autre. Sur Windows, je reçois toujours la première partie de mon erreur .. – ChrizZly

+0

Quelqu'un avec expérience google test devra répondre à cette question. Je connais CMake mais pas google test. – drescherjm

Répondre

0

Vous pouvez suivre ce lien ->

https://www.youtube.com/channel/UCvHU1FkIE-ogFTtXnKZsqWA

Il y a 2 vidéos. Il y a 2 vidéos Les deux sont utiles. J'ai mis en place googleTest dans mon CLion hier après la vidéo longue 8:19.