【发布时间】:2014-11-27 10:17:39
【问题描述】:
我正在使用 CMake 和 Linux 使用以下命令从 CMakeLists.txt 运行我的测试用例:
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)? -
是的,它在测试标志后面。问题是二进制文件仅在代码更改时执行。如果其他人更改了他们的代码而我的代码相同,则不会执行二进制文件,这会扰乱集成系统。