clion批量运行测试需选中目录等容器节点而非单个文件,支持项目工具窗口、commit窗口及ctest三种方式,临时配置默认保留5个且须手动保存为永久配置。

在项目工具窗口中右键批量运行测试
CLion 不支持像 IDEA 那样直接框选多个测试文件后一键运行,但可以通过项目结构视图(Project Tool Window)实现真正的批量触发。关键在于:你必须选中「目录、模块或 changelist」这类容器节点,而不是单个 .cpp 或 .test.ts 文件。
常见错误是误点多个测试文件 → 右键菜单里没有“Run”选项;正确做法是:
- 打开项目工具窗口(
Alt+0+1),展开到目标目录(如tests/或src/test/cpp) - 右键点击该目录 → 选择
Run 'All in <dirname>'</dirname>(名称因框架而异,Google Test 显示为Run All Tests in <dir></dir>,Vitest 显示为Run Vitest in <dir></dir>) - 若目录下混有非测试文件,CLion 会自动跳过(依赖框架的 test discovery 规则,如
*test.cpp、**/*.spec.ts)
用 CTest 批量运行时注意 test list 过滤逻辑
对 CMake + CTest 项目,批量运行本质是调用 ctest 命令行,CLion 的 All Tests 配置默认执行 ctest --force-new-ctest-process。但如果你手动编辑配置,Test list to run 字段的填写方式直接影响实际执行范围:
- 留空 → 运行所有已注册测试(等价于
ctest) - 填入正则表达式(如
^math_.*$)→ 仅匹配名称符合的测试(需 ctest ≥ 3.14) - 填入多个名称用分号分隔(如
test_add;test_sub)→ 精确指定,不支持通配符 - 错误写法:
test_*或test_*.cpp→ ctest 不识别 shell 通配,会报No tests were found
Commit 工具窗口里批量运行未提交的测试
这个功能容易被忽略,但它解决的是真实协作场景:你改了几个测试文件,想确认它们在 commit 前全部通过,又不想手动一个个点。操作路径非常固定:
- 先提交前打开 Commit 工具窗口(
Alt+0+0) - 在变更列表中,按住
Ctrl(Windows/Linux)或Cmd(macOS)多选测试文件(必须是已修改状态的.test.cpp、.spec.ts等) - 右键任意一个选中的文件 → 出现
Run '<test_name>'</test_name>,此时 CLion 会自动聚合为一个临时配置,运行所有选中文件里的测试 - 注意:如果选中的是普通源码文件(如
math.cpp),右键菜单无此选项 —— 它只对被识别为测试入口的文件生效
临时配置数量限制会影响批量重试
每次批量运行都会生成一个临时运行/调试配置,图标半透明。CLion 默认最多保留 5 个临时配置,超出后旧的会被自动删除。这意味着:
- 如果你连续做了 6 次不同目录的批量运行,第 1 次的配置已不可见,无法从配置切换器里快速 rerun
- 想长期复用某次批量运行逻辑(比如每周跑一次 integration 目录),必须在首次运行后立刻保存为永久配置:在 Run 工具窗口顶部配置切换器中选中该临时配置 → 点击
Save Configuration图标(或进Run | Edit Configurations手动保存) - 永久配置名称建议带上下文,例如
Run Integration Tests (CI-ready),避免和自动生成的All in tests/冲突











