目录prj/test
包含一些测试脚本t01.exe
等t02.exe
。其中一些需要输入数据d01.dat
等,也提供在prj/test
. 这些数据文件的名称在测试中是硬编码的,我无法轻易更改。控制文件CMakeLists.txt
包含
enable_testing()
file(GLOB test_sources "t*")
foreach(test_src ${test_sources})
string(REGEX REPLACE ".*/" "" test_name "${test_src}")
string(REGEX REPLACE ".exe$" "" test_name "${test_name}")
add_test(${test_name} "${test_src}")
endforeach(test_src)
我正在子目录中构建项目prj/build
。ctest
工作正常......直到测试需要输入数据。显然,没有找到它们,因为它们驻留在其中,prj/test
而测试运行在prj/build/test
.
因此我的问题是:
- 让测试找到输入数据的标准方法是什么?
- 有没有一种不需要复制数据的方法(如果它们很大)?
- 确实,符号链接在 Windows 下不起作用,因此不是可接受的解决方案?