运行 来自自定义目录的 ctest

Run ctest from a custom dir

我有一个项目包含一些使用模板文件作为资源的单元测试代码。 所以我有这样的东西:

std::ofstream out { "../templates/file.cpp" };

但取决于我在哪里 运行 单元测试它不起作用。 我使用这些命令:

cd _build
cmake ../src
make -j 4
ctest

是否可以使用 cmake 正确管理资源(就像我们可以使用 Qt 一样)? 或者是否可以指定 ctest 运行 目录? 我尝试了这样的 --build-run-dir 选项:

ctest --build-run-dir ..

但论证无效。

非常感谢!

add_test 有一个可选参数 WORKING_DIRECTORY 允许您指定测试的工作目录。这应该允许您从单元测试代码中正确指定模板文件的路径。

引自手册:

WORKING_DIRECTORY

Set the WORKING_DIRECTORY test property to specify the working directory in which to execute the test. If not specified the test will be run with the current working directory set to the build directory corresponding to the current source directory.