Spec-Zone.ru › CMake

FIXTURES_SETUP

Добавлено в версии 3.7.

Задает список фикстур, для которых тест считается тестом настройки. Имена этих фикстур отличаются от имен тестовых случаев и не обязаны быть похожими на имена связанных с ними тестов.

Тесты настройки фикстур — это обычные тесты со всеми стандартными возможностями тестирования. Установка свойства FIXTURES_SETUP для теста имеет два основных эффекта:

  • CTest гарантирует, что тест будет выполнен до любого другого теста, в свойстве FIXTURES_REQUIRED которого указаны имена фикстур.
  • Если CTest предложено запустить только подмножество тестов (например, с помощью регулярных выражений или параметра --rerun-failed), а тест настройки не входит в набор запускаемых тестов, он будет автоматически добавлен, если какие-либо тесты из набора требуют фикстуру, указанную в FIXTURES_SETUP.

В свойстве FIXTURES_SETUP теста настройки можно указать несколько фикстур. Он будет выполнен только один раз за весь запуск CTest, а не отдельно для каждой фикстуры. Для фикстуры также можно определить несколько тестов настройки. При необходимости проекты могут задавать порядок их выполнения с помощью обычного свойства теста DEPENDS.

Тест настройки может требовать другие фикстуры, но не фикстуры, перечисленные в его свойстве FIXTURES_SETUP. Например:

# Ok: dependent fixture is different to setup
set_tests_properties(setupFoo PROPERTIES
  FIXTURES_SETUP    Foo
  FIXTURES_REQUIRED Bar
)

# Error: cannot require same fixture as setup
set_tests_properties(setupFoo PROPERTIES
  FIXTURES_SETUP    Foo
  FIXTURES_REQUIRED Foo
)

Если какой-либо тест настройки фикстуры завершится неудачно, ни один из тестов, в свойстве FIXTURES_REQUIRED которых указана эта фикстура, не будет запущен. Однако тесты очистки все равно будут выполнены.

Более подробно об использовании фикстур в тестах см. в разделе FIXTURES_REQUIRED.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_test/FIXTURES_SETUP.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API