我有以下情况:

add_executable(TestOne TestOne.cpp)
target_link_libraries(TestOne my_library)

add_test(TestOne TestOne)
set_tests_properties (TestOne
  PROPERTIES PASS_REGULAR_EXPRESSION "Passed")


CMakeLists.txt中的cmake代码块位于我的共享库(my_library)项目的/ test目录中。问题是,当我运行“ make”时,它将编译该测试,但是我想使该编译成为可选的,以便仅当我执行“ make test”时才进行编译,而不是当我执行“ make”时才进行编译我的测试是可选的。

最佳答案

您可以使用CMake变量BUILD_TESTING。

请执行下列操作:

 IF (BUILD_TESTING)
    add_executable(TestOne TestOne.cpp)
    target_link_libraries(TestOne my_library)

    add_test(TestOne TestOne)
    set_tests_properties (TestOne
                          PROPERTIES PASS_REGULAR_EXPRESSION "Passed")
 ENDIF(BUILD_TESTING)


您可以通过运行cmake-gui,ccmake或cmake -DBUILD_TESTING = ON来更改变量。据我所知,不重新运行CMake就不可能做您想做的事情。

关于testing - cmake可选测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5260104/

10-10 05:32