You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对CTest进行分组管理以提升测试列表可读性

CTest分组实现方法

CTest通过测试的LABELS属性实现分组功能,你使用的CMake 3.20版本完全支持目录级批量标签配置,按以下操作即可实现需求的层级分组效果:

你可以选择两种方案按需使用:

  • 方案1:子目录内逐个测试打标签
    在unit子目录的CMakeLists.txt中,给每个测试单独设置LABELS属性即可:
# unit/CMakeLists.txt 示例内容
add_executable(ui_test user_interface_test.cpp)
add_test(NAME UserInterface COMMAND ui_test)
# 给测试设置Unit分组标签
set_tests_properties(UserInterface PROPERTIES LABELS "Unit")

add_executable(test2 test2.cpp)
add_test(NAME Test2 COMMAND test2)
set_tests_properties(Test2 PROPERTIES LABELS "Unit")
  • 方案2:批量给子目录所有测试打标签(推荐)
    如果希望unit目录下后续新增的测试自动归到Unit分组,不需要逐个修改配置,可以直接在根目录CMakeLists中配置目录级默认标签,修改你的现有根目录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)
# 配置unit目录下所有测试默认携带Unit标签
set_property(DIRECTORY unit PROPERTY TEST_LABELS "Unit")
add_subdirectory(unit)

配置完成后重新运行cmake生成构建系统,再运行ctest就会展示你期望的分组结构。如果需要单独运行某一组测试,执行ctest -L Unit即可筛选运行所有Unit分组的测试。

内容的提问来源于stack exchange,提问作者Reid Moffat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:57:03