FIXTURES_CLEANUP

在 3.7 版本中新增。

指定一個夾具列表,該測試將被視為清理測試。這些夾具名稱與測試案例名稱不同,並且不要求與其相關聯的測試名稱有任何相似之處。

夾具清理測試是具有所有常用測試功能的普通測試。為測試設定 FIXTURES_CLEANUP 屬性有兩個主要影響

  • CTest 將確保測試在所有其他測試之後執行,這些測試在其 FIXTURES_REQUIRED 屬性中列出了任何夾具。

  • 如果要求 CTest 僅執行測試的子集(例如,使用正規表示式或 --rerun-failed 選項),並且清理測試不在要執行的測試集中,如果該集合中的任何測試需要 FIXTURES_CLEANUP 中列出的任何夾具,則會自動新增該清理測試。

一個清理測試可以在其 FIXTURES_CLEANUP 屬性中列出多個夾具。它將在整個 CTest 執行過程中僅執行一次,而不是每個夾具執行一次。一個夾具也可以定義多個清理測試。如果一個夾具有多個清理測試,專案可以使用常用的 DEPENDS 測試屬性來控制它們的順序(如果需要)。

清理測試可以要求其他夾具,但不能要求其 FIXTURES_CLEANUP 屬性中列出的任何夾具。例如

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

即使該夾具的設定或常規測試失敗或被跳過,清理測試也會執行。

請參閱 FIXTURES_REQUIRED 以更完整地討論如何使用測試夾具。