Как вы используете CTEST_CUSTOM_PRE_TEST?
Я искал все документы, но не могу найти ни одного примера использования CTEST_CUSTOM_PRE_TEST.
В основном мне нужно запустить и запустить некоторые команды на сервере до запуска теста. Поэтому мне нужно добавить несколько шагов перед тестированием. Каков синтаксис CTEST_CUSTOM_PRE_TEST?
CTEST_CUSTOM_PRE_TEST (??? что сюда ставить???) ADD_TEST(MyTest MyTestCommand)
3 ответа
CTEST_CUSTOM_PRE_TEST - это переменная, используемая в контексте запуска инструментальной панели ctest. Его следует установить непосредственно в самом скрипте ctest -S или в файле CTestCustom.cmake в верхней части дерева сборки.
В любом файле примерное значение может быть:
set(CTEST_CUSTOM_PRE_TEST "perl prepareForTesting.pl -with-this -and-that")
Это должна быть одна командная строка, правильно отформатированная для работы в системе, в которой вы находитесь. Он запускается один раз во время вызова ctest_test до того, как все тесты будут запущены. Аналогично, существует также переменная CTEST_CUSTOM_POST_TEST, которая также должна быть единой командной строкой, но запускается после завершения всех тестов.
Цитирование и экранирование аргументов с пробелами, кавычками и обратной косой чертой может быть сложной задачей... но, возможно, вам это тоже не понадобится.
Я не знаю реального примера этого, на который я могу вам указать, но я могу прочитать исходный код ctest...;-)
Место set(CTEST_CUSTOM_PRE_TEST ..
в файле, который во время выполнения cmake копируется в ${CMAKE_BINARY_DIR}/CTestCustom.cmake
, Для получения дополнительной информации см. /questions/45358631/pozvolte-cmake-nastroit-cttest-dlya-pechati-verhnego-i-nizhnego-kolontitula-vokrug-rezultatov-odnogo-testa/45358640#45358640.
В OpenSCAD на безголовом linux мы пытаемся запустить виртуальный фреймбуфер перед запуском ctest. Мы не используем PRE_TEST, хотя. Мы строим наш собственный CTestCustom.cmake в директории build во время запуска cmake. (Мы используем POST_TEST, но было несколько последних версий cmake, где POST_TEST был сломан)
Вы можете найти код здесь https://github.com/openscad/openscad/blob/master/tests