【问题标题】:Always run test cases using CMake [duplicate]始终使用 CMake 运行测试用例 [重复]
【发布时间】: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)?
  • 是的,它在测试标志后面。问题是二进制文件仅在代码更改时执行。如果其他人更改了他们的代码而我的代码相同,则不会执行二进制文件,这会扰乱集成系统。

标签: c++ cmake


【解决方案1】:

请改用 add_custom_target。它在每次构建时执行。 http://www.cmake.org/cmake/help/v3.0/command/add_custom_target.html

add_custom_target( run_test ALL
                   COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests )

【讨论】:

  • 您还可以使用“make run_test”来运行所有测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多