目录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)
Run Code Online (Sandbox Code Playgroud)
我正在一个子目录中构建项目prj/build.ctest工作正常...直到测试需要输入数据.显然,找不到它们是因为它们存在于prj/test测试中prj/build/test.
因此我的问题:
add_test命令接受WORKING_DIRECTORY选项.您可以将此选项设置为test所在的目录.所以,test会找到它的数据文件:
add_test(NAME ${test_name} COMMAND "${test_src}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1046 次 |
| 最近记录: |