FIXTURES_SETUP

版本 3.7 中添加。

指定测试将被视为设置测试的装置列表。这些装置名称不同于测试用例名称,也不必与与其关联的测试的名称有任何相似之处。

装置设置测试是具有所有通常测试功能的常规测试。为测试设置 FIXTURES_SETUP 属性主要有两个作用

  • CTest 会确保在任何其他在其 FIXTURES_REQUIRED 属性中列出装置名称的测试之前执行该测试。

  • 如果 CTest 只运行一部分测试(例如使用正则表达式或 --rerun-failed 选项),并且设置测试不在要运行的测试集中,则当集中任何测试需要 FIXTURES_SETUP 中列出的任何装置时,它将自动添加到该集中。

一个设置测试可以在其 FIXTURES_SETUP 属性中列出多个装置。它只会针对整个 CTest 运行执行一次,而不是针对每个装置执行一次。一个装置也可以定义多个设置测试。如果有针对一个装置的多个设置测试,项目可以使用通常的 DEPENDS 测试属性(如果有必要)控制它们的顺序。

设置测试允许要求其他装置,但不允许要求其 FIXTURES_SETUP 属性中列出的任何装置。例如

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

如果某个装置的任何设置测试失败,则没有任何测试在其 FIXTURES_REQUIRED 属性中列出该装置,不会运行该测试。但是,清理测试仍将执行。

请参阅 FIXTURES_REQUIRED,以更全面地讨论如何使用测试装置。