2015-08-29 2 views
0

J'essaie le fichier cmakelist.txt CMake suivant pour l'exécution des tests pour mon projet scolaire:CMake ne parvient pas à exécuter cxxtestgen

cmake_minimum_required(VERSION 3.3) 
project(ex2) 

set(CMAKE_CXX_COMPILER "/usr/local/Cellar/gcc/5.2.0/bin/g++-5") 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wall -std=c++11") 

find_package(CxxTest) 
if(CXXTEST_FOUND) 
    include_directories(${CXXTEST_INCLUDE_DIR}) 
    enable_testing() 
    CXXTEST_ADD_TEST(bag_of_words_runner tests/bag_of_words_runner.cpp tests/BagOfWordsTests.h) 
    CXXTEST_ADD_TEST(parsing_runner tests/parsing_runner.cpp tests/ParsingTests.h) 
    target_link_libraries(bag_of_words_runner ex2) 
    target_link_libraries(parsing_runner ex2) 
endif() 

set(SOURCE_FILES MIR.cpp SongEntry.cpp BagOfWords.cpp Parameters.cpp parsing) 
add_executable(ex2 ${SOURCE_FILES}) 

Mais j'obtiens l'erreur suivante:

luftzug$ cmake --build /Users/luftzug/Library/Caches/clion11/cmake/generated/c7799756/c7799756/Debug --target bag_of_words_runner -- -j 4[ 33%] Generating tests/bag_of_words_runner.cpp 
    File "/usr/local/bin/cxxtestgen", line 2 
    PYTHONPATH="/usr/local/Cellar/cxxtest/4.4/lib/python2.7/site-packages:/usr/local/Cellar/cxxtest/4.4/lib/python2.7/site-packages" exec "/usr/local/Cellar/cxxtest/4.4/libexec/bin/cxxtestgen" "[email protected]" 
                                     ^
SyntaxError: invalid syntax 
make[3]: *** [tests/bag_of_words_runner.cpp] Error 1 
make[2]: *** [CMakeFiles/bag_of_words_runner.dir/all] Error 2 
make[1]: *** [CMakeFiles/bag_of_words_runner.dir/rule] Error 2 
make: *** [bag_of_words_runner] Error 2 

J'avais essayé l'exécuter en dehors de CLion juste pour exclure cela. Je peux exécuter cxxtestgen à partir de la ligne de commande sans aucun problème.

Une idée ou une solution de contournement? Je dois être capable d'exécuter ces tests unitaires, de préférence en utilisant CMake (pour profiter des avantages de son intégration avec CLion).

Répondre

0

Il arrive que FindCxxTest ait pensé que /usr/local/bin/cxxtestgen est un script python. Cependant ce n'est pas le cas; peut-être qu'auparavant c'était. Le module cmake n'est pas encore à jour. Voici une solution temporaire:

find_package(CxxTest) 
set(CXXTEST_TESTGEN_INTERPRETER bash) # FindCxxTest module bug 
CXXTEST_ADD_TEST(...)