如何将 CTest 组合在一起?

How to group CTests together?

我想制作 CTest 组以提高可读性,结构如下:

我该怎么做?我现在的 CMakeLists.txt:

cmake_minimum_required(VERSION 3.20)
project(Test)

set(CMAKE_CXX_STANDARD 14)

enable_testing()
add_executable(env environment.cpp)
add_test(Environment env)
add_subdirectory(unit) # Includes tests 'UserInterface' and 'Test2'

当我 运行 时子目录中的测试没有分组在一起:

CTest 不支持这个,因为它不是经典的单元测试框架,而是一种方便的方式来“运行 东西”已经配置(在大多数情况下)是使用 CMake.

构建

您可以做的是:

  • 实施命名方案,例如通过公共标识符进行前缀测试。对于使用 add_test(foo_...) 注册的所有测试,您可以 运行 这个组,例如 ctest -R foo_
  • 将类似设置和拆卸的测试与一组测试相关联(查看 FIXTURES_CLEANUP 等测试属性)。但是,这本身并没有给你结构,它只确保某个现有测试是 运行 作为 setup/teardown before/after 有问题的测试。