我有一个CTestList.cmake文件,其中包含此函数定义并调用:
function(add_test_r testname )
add_test(
${testname} python executeRegressionTestCase.py ${testname}
)
endfunction(add_test_r)
add_test_r(Test01)
我需要通过CMake直接支持测试cmake ..; make test
,并通过CTest支持测试而不先运行CMake。当CMake构建test
目标并运行make test
时,上面的函数执行正常。但是,当我使用CTest运行相同的文件时,${testname}
为空。当与CTest一起运行时,CTestList中是否不支持函数变量,或者是否存在我缺少的东西?
答案 0 :(得分:0)
我没有明确的答案,但经过一些测试后,看起来CMake会为输入文件执行预处理步骤。具体来说,它读入CTestList.cmake,评估变量和函数,并生成“扩展”CTestTestfile.cmake。使用转向脚本运行CTest不会运行预处理步骤,因此不会扩展变量和函数。互联网上的一些人建议,转向脚本中使用的CTestTestfile.cmake应该首先由CMake生成。不幸的是,这不是我正在寻找的用例,但它可能会帮助其他人遇到这个问题。