Замените команду ctest на "ctest --output-on-fail" навсегда для определенного проекта в CMakeLists.txt
Я нашел это общее ctest
Команда не дает много информации о тестах, поэтому я хотел бы добавить ctest --output-on-failure
но пользователи не должны беспокоиться о флаге. Я хочу, чтобы они просто cmake
, make
проект и запустить ctest, и он должен запустить ctest с --output-on-failure
флаг. Возможно ли это сделать в 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
не работает.
1 ответ
Я пошел с 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})
В примечаниях к выпуску CMake 3.17 есть новая переменная CMAKE_CTEST_ARGUMENTS, которую вы можете установить для передачи любых аргументов командной строки в CTest, включая--output-on-failure
. В вашем конкретном случае теперь вы можете просто добавить это в свой CMakeLists.txt:
list(APPEND CMAKE_CTEST_ARGUMENTS "--output-on-failure")