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