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 的測試。但是,清理測試仍將會執行。

請參閱 FIXTURES_REQUIRED 以獲得關於如何使用測試 fixture 的更完整討論。