Как вы используете 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

Другие вопросы по тегам