测试的CMake详细输出

10

我该如何让“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中添加一些内容来实现这个目标,我不想要一个手动的解决方案,需要我在命令行中附加一些东西,例如"make test"

CTEST_OUTPUT_ON_FAILURE=TRUE make test
或者
ctest -V 

我的问题类似于如何在使用CMake时从CTest获得详细输出?

1个回答

4

以下内容来自GNU Radio的维基,介绍如何测试out-of-tree模块(由Braun先生提供):

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

现在,在失败后重新运行测试对我来说似乎并没有太多意义——而且默认情况下也不会在每个make test上自动执行,因为测试可能很耗时,并且不应该在破损的构建环境中重复执行。

如何将该行为添加到默认的make test行为中,当然取决于您的CMake基础设施,我无法在未阅读代码的情况下回答。


1
谢谢!当我执行 ctest -V 命令时,我得到了我想要的测试输出结果!我该如何在 CMakeLists.txt 文件中包含 verbose 标志,以便 "make test" 命令自动具有详细输出? - crusarovid
谢谢你的赞美之词;如果你不介意,我实际上想要一个点赞 ;) - Marcus Müller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接