FIXTURES_SETUP

版本 3.7 新增。

指定测试应被视为 setup test 的 fixture 列表。 这些 fixture 名称与 test case 名称不同,并且不需要与和它们关联的测试名称有任何相似之处。

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

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

  • 如果 CTest 被要求仅运行测试的子集(例如,使用正则表达式或 --rerun-failed 选项),并且 setup test 不在要运行的测试集中,则如果集合中的任何测试需要 FIXTURES_SETUP 中列出的任何 fixture,它将自动添加。

一个 setup test 可以在其 FIXTURES_SETUP 属性中列出多个 fixture。 它将仅在整个 CTest 运行中执行一次,而不是为每个 fixture 执行一次。 一个 fixture 也可以定义多个 setup test。 如果一个 fixture 有多个 setup test,项目可以使用常用的 DEPENDS 测试属性来控制它们的顺序(如果需要)。

setup test 允许请求其他 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 的任何 setup test 失败,则列出该 fixture 的任何测试都不会在其 FIXTURES_REQUIRED 属性中运行。 但是,Cleanup test 仍将执行。

请参阅 FIXTURES_REQUIRED 以获得关于如何使用 test fixture 的更完整讨论。