我想让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
...
我错过了什么?
答案 0 :(得分:2)
根据add_test()
The test name may not contain spaces, quotes, or other
characters special in CMake syntax.
,测试名称可能不包含空格:
var propriedades = {
"areaDamaged" : {
"similaridade": "Sim",
"valores": {
"Desconhecido" : "?",
"scattered" : "0",
"low-areas" : "1",
"upper-areas" : "2",
"whole-field" : "3"
}
},
...
在有问题的例子中,测试命名为#34;我的测试"。将测试名称更改为" My_tests"解决了这个问题。
显然,空格字符后面的测试名称部分(即" tests")被解释为测试可执行文件名。