如何在CMake中为测试目标添加依赖项?

问题描述 投票:0回答:1

我通过命令add_test添加了一些测试:

find_program(PYTEST "pytest")
add_test(NAME test_something COMMAND ${PYTEST})

但在此测试之前,我需要复制一些测试文件(包括要运行的python测试脚本)。为此目的,有一个自定义目标generate_init_queries。由于add_test没有创建目标,我不能使用add_dependencies链接我的自定义目标generate_init_queries和此测试。我认为在CMake中应该存在一个test目标并添加了命令:

add_dependencies(test generate_init_queries)

但它导致错误annot add target-level dependencies to non-existent target "test"。如何在make test中运行测试之前复制文件?

cmake pytest
1个回答
0
投票

是通过add_custom_targetALL关键字:

find_program(PYTEST "pytest")
add_test(test_something ${PYTEST} test_something.py)
add_custom_target(test_something_py_copy ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/test_something.py ${TEST_DATA_DIR}/test_something.py DEPENDS generate_init_queries)
© www.soinside.com 2019 - 2024. All rights reserved.