如何将 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 有问题的测试。
我想制作 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 有问题的测试。