【问题标题】:CMake verbose output from testsCMake 测试的详细输出
【发布时间】:2015-04-27 20:52:21
【问题描述】:

如何让“make test”显示详细输出?我希望“make test”通过命令行执行与 ctest -V 相同的操作。

我尝试将以下内容添加到我的 CMakeLists.txt 中,但没有任何效果:(

set(ENV{CTEST_OUTPUT_ON_FAILURE} TRUE)

add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose)

add_custom_command(TARGET test PRE_BUILD
               COMMAND ${CMAKE_CTEST_COMMAND} -V)

但是当我运行 make test 时我仍然得到这个:

  Start   1: unittest1
  1/143 Test   #1: unittest1 ....................................   Passed    0.01 sec
        Start   2: unittest2
  2/143 Test   #2: unittest2 ............................   Passed    0.03 sec
        Start   3: unittest3
  3/143 Test   #3: unittest3 ....................   Passed    0.02 sec

为了澄清,我想在我的 CMakeLists.txt 中添加一些东西来实现这一点,我不想要一个手动解决方案,需要我在命令行中附加一些东西来“进行测试”,例如

CTEST_OUTPUT_ON_FAILURE=TRUE make test

ctest -V 

我的问题类似于Using cmake how do I get verbose output from ctest?

【问题讨论】:

    标签: cmake ctest


    【解决方案1】:

    来自GNU Radio's wiki 关于对树外模块进行测试的页面(由 Braun 先生提供):

    从构建目录运行ctest -V(通常),它会给你详细的信息。添加-R regex 以仅执行与regex 匹配的测试。

    现在,在失败时重新运行测试对我来说似乎很有意义——而且不会自动在每个 make test 上都这样做,因为测试可能很耗时,而且不应该默认情况下在损坏的构建环境等中重复。

    如何将该行为添加到默认 make test 行为当然取决于您的 CMake 基础架构,如果不阅读您的代码,我无法回答这个问题。

    【讨论】:

    • 谢谢!当我执行 ctest -V 时,我得到的正是我想要的测试输出!如何将详细标志包含到我的 CMakeLists.txt 文件中,以便“make test”自动具有详细输出
    • 谢谢你的好话;如果您不介意,我实际上想要一个赞成票;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2017-05-12
    • 2011-08-08
    • 2020-01-30
    • 1970-01-01
    相关资源
    最近更新 更多