从测试中获取详细输出

cru*_*vid 8 cmake ctest

如何进行"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)
Run Code Online (Sandbox Code Playgroud)

但是当我运行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
Run Code Online (Sandbox Code Playgroud)

为了澄清,我想在我的CMakeLists.txt中添加一些内容以使其成为可能,我不想要一个手动解决方案,要求我在命令行中添加"make test",例如

CTEST_OUTPUT_ON_FAILURE=TRUE make test
Run Code Online (Sandbox Code Playgroud)

要么

ctest -V 
Run Code Online (Sandbox Code Playgroud)

我的问题类似于使用cmake如何从ctest获得详细输出?.

Mar*_*ler 5

GNU Radio的wiki页面开始对树外模块进行测试(由Braun先生提供):

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

现在,重新运行失败测试似乎对我来说很有意义 - 并且不会自动对每个人执行此操作make test,因为测试可能非常耗时,并且不应该在破坏的构建中重复环境等,默认情况下.

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