FIXTURES_SETUP

在 3.7 版本加入.

指定一个夹具列表,测试将被视为设置测试。这些夹具名称与测试用例名称不同,并且不需要与与其关联的测试名称有任何相似之处。

夹具设置测试是具有所有常用测试功能的普通测试。为测试设置“FIXTURES_SETUP”属性有两个主要影响:

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

  • 如果要求 CTest 仅运行测试的一个子集(例如使用正则表达式或“--rerun-failed”选项)并且设置测试不在要运行的测试集中,它将自动添加(如果有)集合中的测试需要“FIXTURES_SETUP”中列出的任何夹具。

设置测试可以在其“FIXTURES_SETUP”属性中列出多个夹具。它将只对整个 CTest 运行执行一次,而不是对每个 fixture 执行一次。夹具还可以定义多个设置测试。如果一个夹具有多个设置测试,项目可以在必要时使用通常的 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 属性中列出该夹具的任何测试。但是,清理测试仍将执行。

有关如何使用测试夹具的更完整讨论,请参见:prop_test:FIXTURES_REQUIRED