Я хочу, чтобы ctest показывал мне результат неудачных тестов по умолчанию. То есть, я хочу запустить:
$ 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 dumps неудачно завершает вывод тестов по умолчанию при обычном вызове "сделать все тесты" БЕЗ использования экспорта глобальной переменной во время сеанса или прибегая к таргетингу, например 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 ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
и экспериментирование показывает, что в оболочке задана переменная окружения, в которой выполняется тестовая программа, но не в оболочке, в которой выполняется ctest.