Задать вопрос
Moric
@Moric

CMake/CTest, вывод stdout/stderr в отдельные файлы для каждого теста

В наличии большой проект на C/C++/Fortran собираемый в CMake (изменения в коде проблематичны)
Результатом сборки является бинарный файл, который производит расчёт и выводит промежуточные данные в большом кол-ве на стандартные потоки.
Есть постоянно изменяемый набор тестов.

Цель: при создании теста указать, что бы вывод перенаправлялся в отдельный для этого теста файл. Что бы при вызове прогона всех тестов, результат (вывод на потоки) можно было посмотреть отдельно для всех тестов.

В данный момент тест добавляется следующей коммандой

add_test ( NAME "${test_name}"
WORKING_DIRECTORY "${test_dir}"
COMMAND ${APP_NAME} ${test_args}
)

Если к test_args добавить что-нибудь типа 1>out.txt, то при вызове теста параметр обрамляется кавычками и расценивается как строковая команда.

Если вызывать ctest с параметром -VV (ctest -VV > out.txt), то в полученном выводе будет сборная солянка от всех тестов, однако, которую можно распарсить внешним скриптом. Но мне кажется, это не правильное решение.

Какие есть иные варианты решения?
  • Вопрос задан
  • 3345 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (1)