将 ctest 命令替换为 CMakeList 中特定项目的永久"ctest --output-on-failure".txt



我发现通用的ctest命令没有提供太多关于测试的信息,所以我想添加ctest --output-on-failure,但用户不必担心标志。我希望他们只cmakemake项目并运行ctest,它应该运行带有--output-on-failure标志的ctest。在CMakeLists.txt中可以做到这一点吗?

编辑:

env CTEST_OUTPUT_ON_FAILURE=1 make test 输出

 4/13 Test  #4: TEST_SSSP ........................***Failed  Required regular expression not found.Regex=[CORRECT
]  0.00 sec
Loading Matrix-market coordinate-formatted graph ...
Input graph file /home/muhammad/gunrock/dataset/small/chesapeake.mtx does not exis

set_property(TEST TestName PROPERTY ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1") 输出

 4/13 Test  #4: TEST_SSSP ........................***Failed  Required regular expression not found.Regex=[CORRECT
]  0.00 sec

set_property中的标志不起作用。

在CMake 3.17发行说明中,有一个新的变量CMake_CTEST_ARGUMENTS,您可以将其设置为向CTEST传递任何命令行参数,包括--output-on-failure。在您的特定情况下,您现在可以简单地将其添加到您的CMakeLists.txt中:

list(APPEND CMAKE_CTEST_ARGUMENTS "--output-on-failure")

我使用了make check每个解决方案:CMake:为ctest设置环境变量(或自动从ctest/make-test获得失败的测试输出)

add_custom_target(check ${CMAKE_COMMAND} -E env CTEST_OUTPUT_ON_FAILURE=1
                  ${CMAKE_CTEST_COMMAND} -C $<CONFIG> --verbose
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR})

相关内容

  • 没有找到相关文章

最新更新