我希望ctest默认显示失败的测试输出.也就是说,我想运行:
$ make all test
Run Code Online (Sandbox Code Playgroud)
并且无需查看任何失败测试的输出cat Testing/Temporary/LastTest.log.
似乎有两种方法可以做到这一点:
(1)设置CTEST_OUTPUT_ON_FAILURE环境变量:
$ CTEST_OUTPUT_ON_FAILURE=1 make all test
$ # or CTEST_OUTPUT_ON_FAILURE=1 ctest
Run Code Online (Sandbox Code Playgroud)
(2)指定调用的--output-on-failure标志ctest:
$ ctest --output-on-failure
Run Code Online (Sandbox Code Playgroud)
是否有办法编写CMakeLists.txt文件,以便ctests在默认情况下在正常的"make all test"调用中转储失败的测试输出,而无需在会话中全局导出环境变量或诉诸自定义目标make check(如所描述的)在这里)?
我知道SET_TESTS_PROPERTIES()命令,但尝试这样:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(testenv CXX)
ENABLE_TESTING()
ADD_EXECUTABLE(hello hello.cpp)
ADD_TEST(testhello hello)
# Following sets the environment variable for the shell in which the test
# progoram 'hello' is run, but not the shell in which ctest is run
SET_TESTS_PROPERTIES(testhello
PROPERTIES …Run Code Online (Sandbox Code Playgroud)