FIXTURES_CLEANUP¶
在版本 3.7 中加入。
指定一個 fixture 列表,測試將被視為清理測試。這些 fixture 名稱與測試案例名稱不同,並且不需要與和它們相關的測試名稱有任何相似之處。
Fixture 清理測試是具有所有常用測試功能的一般測試。為測試設定 FIXTURES_CLEANUP
屬性有兩個主要效果
CTest 將確保測試在所有其他測試之後執行,這些測試在其
FIXTURES_REQUIRED
屬性中列出任何 fixture。如果要求 CTest 僅執行測試的子集(例如,使用正規表示式或
--rerun-failed
選項),並且清理測試不在要運行的測試集中,如果集合中的任何測試需要FIXTURES_CLEANUP
中列出的任何 fixture,它將自動加入。
一個清理測試可以在其 FIXTURES_CLEANUP
屬性中列出多個 fixture。它將在整個 CTest 運行中僅執行一次,而不是每個 fixture 執行一次。一個 fixture 也可以有多個已定義的清理測試。如果一個 fixture 有多個清理測試,專案可以使用常用的 DEPENDS
測試屬性來控制它們的順序(如果需要)。
清理測試可以要求其他 fixture,但不能要求在其 FIXTURES_CLEANUP
屬性中列出的任何 fixture。例如
# Ok: Dependent fixture is different to cleanup
set_tests_properties(cleanupFoo PROPERTIES
FIXTURES_CLEANUP Foo
FIXTURES_REQUIRED Bar
)
# Error: cannot require same fixture as cleanup
set_tests_properties(cleanupFoo PROPERTIES
FIXTURES_CLEANUP Foo
FIXTURES_REQUIRED Foo
)
即使該 fixture 的設定或常規測試失敗或被跳過,清理測試也將執行。
請參閱 FIXTURES_REQUIRED
以獲得關於如何使用測試 fixture 的更完整討論。