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
。