问题描述
我的CMakeLists.txt中有这一行:
add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
问题是WORKING_DIRECTORY
似乎设置不正确。
message("Futurama ${PROJECT_SOURCE_DIR}")
它表明PROJECT_SOURCE_DIR
是我所期望的,但是当我运行生成的VS项目时,工作文件夹为$(ProjectDir)
,这是错误的,因为我在单独的文件夹中进行构建。 / p>
Visual Studio生成器的WORKING_DIRECTORY
设置是否可能被破坏?
如果没有,如何在WORKING_DIRECTORY
之后打印add_test
的状态?
解决方法
有几种方法可以验证WORKING_DIRECTORY
的设置是否正确。
以编程方式(如评论所述):
get_test_property(${PROJECT_NAME} WORKING_DIRECTORY test_dir)
message("My test's working directory: ${test_dir}")
检查:
导航至构建文件夹中的CTestTestfile.cmake
文件,然后在文本编辑器中将其打开。您可以在此处的命令中看到WORKING_DIRECTORY
属性已正确设置。
但是,$(ProjectDir)
Visual Studio项目的工作目录中列出的RUN_TESTS
指向您的构建目录中的文件夹;这是一个 Debugging 属性,在运行CTest测试时实际上并未使用。在Visual Studio调试可执行文件时使用。由于RUN_TESTS
项目实际上无法调试(CTest测试实际上是作为构建后事件运行的),因此该工作目录属性不适用于您的情况。