我希望ctest默認向我顯示失敗的測試輸出。也就是說,我想運行:CMake:爲ctest設置環境變量(或者自動從ctest/make測試中獲取失敗的測試輸出)
$ make all test
,看到測試失敗的任何輸出,而不必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
(2)指定--output-on-failure
標誌的ctest
調用:
$ ctest --output-on-failure
有沒有辦法編寫CMakeLists.txt文件,以便ctests轉儲失敗的測試輸出t在正常的「全部測試」調用而不是在會話中全局地輸出環境變量,或者採用像make check
這樣的自定義目標(如描述的here)?
我知道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 ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
和試驗表明,環境變量,該測試程序中執行的外殼設置,而不是在外殼,CTEST在執行
謝謝。有用的食譜! – Jeet 2013-04-23 08:08:44
謝謝你,正是我在找的東西!任何想法爲什麼不可能修改'test'目標? – lfxgroove 2013-10-13 09:25:03
'test'目標是CMake的全局默認目標之一,不能修改。在CMake源代碼中硬編碼設置'test'命令。 – sakra 2013-10-13 10:26:04