如何让"make test"显示详细输出?我希望"maketest"通过命令行执行与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测试时,我仍然会得到这个:
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
我的问题类似于使用cmake如何从ctest获得详细输出
来自GNU Radio关于对树外模块进行测试的wiki页面(由Braun先生提供):
从构建目录(通常)运行ctest -V
,它将为您提供详细信息。添加-R regex
以仅执行与regex
匹配的测试。
现在,对我来说,在失败时重新运行测试似乎很有意义——而且不是在每个make test
上都自动执行,因为测试可能很耗时,而且默认情况下不应该在坏的构建环境中重复,等等。
如何将该行为添加到默认的make test
行为中当然取决于您的CMake基础设施,如果不仔细阅读您的代码,我就无法回答这个问题。