FIXTURES_SETUP

在版本 3.7 中新增。

指定一個 fixture 清單,這些 fixture 的測試將被視為設定測試。這些 fixture 名稱與測試案例名稱不同,且不要求與其相關的測試名稱有任何相似之處。

Fixture 設定測試是具有所有常規測試功能的普通測試。為測試設定 FIXTURES_SETUP 屬性有兩個主要影響:

  • CTest 將確保測試在任何其他測試之前執行,這些測試在其 FIXTURES_REQUIRED 屬性中列出 fixture 名稱。

  • 如果 CTest 被要求僅執行一部分測試(例如,使用正則表達式或 --rerun-failed 選項),並且設定測試不在要執行的測試集中,則如果集合中的任何測試需要 FIXTURES_SETUP 中列出的任何 fixture,它將會被自動添加。

一個設定測試可以在其 FIXTURES_SETUP 屬性中列出多個 fixture。它將僅為整個 CTest 運行執行一次,而不是為每個 fixture 執行一次。一個 fixture 也可以定義多個設定測試。如果一個 fixture 有多個設定測試,專案可以使用通常的 DEPENDS 測試屬性來控制它們的順序(如有必要)。

設定測試可以要求其他 fixture,但不能要求任何在其 FIXTURES_SETUP 屬性中列出的 fixture。例如:

# 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
)

如果任何一個 fixture 的設定測試失敗,則不會執行任何在其 FIXTURES_REQUIRED 屬性中列出該 fixture 的測試。但是,仍將執行清理測試。

有關如何使用測試 fixture 的更完整討論,請參閱 FIXTURES_REQUIRED