我通过命令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
中运行测试之前复制文件?
是通过add_custom_target
与ALL
关键字:
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)