不能 运行 ctest 除非测试可执行文件被命名为 "tests"
Can't run ctest unless the test executable is named "tests"
我正在努力让 CMake/CTest 工作。我的问题是 CTest 似乎没有获取测试可执行文件,除非它被命名为 tests
.
在我的最小示例项目中,我有一个 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.0)
project(myproject C)
enable_testing()
set(TEST_EXE_NAME tests)
add_executable(${TEST_EXE_NAME} test_main.c)
add_test(NAME "My tests" COMMAND ${TEST_EXE_NAME})
...和一个非常简单的测试程序,test_main.c
,总是通过:
int main() {
return 0;
}
我可以运行make && make test
,只要TEST_EXE_NAME
设置为tests
就可以了。 但是,当我将可执行文件名称更改为其他名称时,例如mytests
,我收到以下错误:
Could not find executable tests
Looked in the following places:
tests
tests
Release/tests
Release/tests
Debug/tests
...
我错过了什么?
根据 CMake manual for add_test()
测试名称可能不包含 spaces:
The test name may not contain spaces, quotes, or other
characters special in CMake syntax.
在有问题的示例中,测试名为 "My tests"。将测试名称更改为 "My_tests" 即可解决问题。
显然,space 字符后的测试名称部分(即 "tests")被解释为测试可执行文件名称。
我正在努力让 CMake/CTest 工作。我的问题是 CTest 似乎没有获取测试可执行文件,除非它被命名为 tests
.
在我的最小示例项目中,我有一个 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.0)
project(myproject C)
enable_testing()
set(TEST_EXE_NAME tests)
add_executable(${TEST_EXE_NAME} test_main.c)
add_test(NAME "My tests" COMMAND ${TEST_EXE_NAME})
...和一个非常简单的测试程序,test_main.c
,总是通过:
int main() {
return 0;
}
我可以运行make && make test
,只要TEST_EXE_NAME
设置为tests
就可以了。 但是,当我将可执行文件名称更改为其他名称时,例如mytests
,我收到以下错误:
Could not find executable tests
Looked in the following places:
tests
tests
Release/tests
Release/tests
Debug/tests
...
我错过了什么?
根据 CMake manual for add_test()
测试名称可能不包含 spaces:
The test name may not contain spaces, quotes, or other
characters special in CMake syntax.
在有问题的示例中,测试名为 "My tests"。将测试名称更改为 "My_tests" 即可解决问题。
显然,space 字符后的测试名称部分(即 "tests")被解释为测试可执行文件名称。