C++ 始终使用CMake运行测试用例
我正在使用CMake和Linux通过以下命令从CMakeLists.txt运行测试用例:C++ 始终使用CMake运行测试用例,c++,cmake,C++,Cmake,我正在使用CMake和Linux通过以下命令从CMakeLists.txt运行测试用例: add_custom_command( TARGET tests POST_BUILD COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests ) 这仅在代码被更改时执行,是否仍要这样做,以便它始终运行二进制文件 对于解决方案,我必须这样做: add_custom_command(
add_custom_command( TARGET tests
POST_BUILD
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests
)
这仅在代码被更改时执行,是否仍要这样做,以便它始终运行二进制文件
对于解决方案,我必须这样做:
add_custom_command( OUTPUT tests.a
POST_BUILD
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests
)
add_custom_target( runTests
ALL
DPEENDS tests.a
)
改用添加自定义目标。它在每次构建时执行。
虽然我当然鼓励测试的精神,但您是否真的认为在每个构建上始终运行它们是一个好主意,而不是每次都显式地运行
make test
(或ctest
)?是的,它是在测试标志后面。问题是二进制文件只在代码更改时执行。如果其他人更改了他们的代码,而我的代码相同,则不会执行二进制代码,这会扰乱集成系统。您还可以使用“make run_test”来运行所有测试。
add_custom_target( run_test ALL
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests )