Ale*_*lex 7 unit-testing cmake
我正在使用CMake来构建我的系统和我的单元测试.
我也在做一个源外构建.
我发现使用ADD_TEST()命令,您不需要安装测试可执行文件(它将在您运行make install时运行,这很棒).
但是,我的单元测试依赖于一些输入文件,这些文件需要复制到构建可执行文件的位置.
据我所知,我不能使用install()将文件复制一份,因为我还没有指定的地方还有就是-这取决于在构建命令被调用.
有什么方法可以告诉CMake将我的测试文件复制到它构建可执行文件的同一位置吗?
这可能不是最好的解决方案,但目前我正在这样做:
file(COPY my_directory DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
Run Code Online (Sandbox Code Playgroud)
这似乎起到了作用。
这个问题已经很老了,但在我看来,有一个比复制您需要的文件更好的解决方案${CMAKE_CURRENT_BINARY_DIR})。该add_test命令有一个WORKING_DIRECTORY选项,允许选择运行测试的目录。所以我会建议以下解决方案:
add_executable(testA testA.cpp)
add_test(NAME ThisIsTestA COMMAND testA WORKING_DIRECTORY ${DIRECTORY_WITH_TEST_DATA})
Run Code Online (Sandbox Code Playgroud)
这可以避免对输入文件进行不必要的复制。
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |