如何在CLion Test Runner中批量运行所有QTests?
如何在CLion中一次性运行所有CMake生成的测试目标
我明白你的痛点——给每个测试类单独创建CMake目标确实能让单类调试更精准,但要挨个跑一遍实在太繁琐了。CMake自带的test目标因为属于虚拟目标(本身不执行编译,仅触发测试流程),CLion默认不会在目标列表里展示,但咱们有几个更顺手的办法来批量运行所有测试:
方法一:用CLion内置的批量测试功能
这是最省心的方式:
- 打开顶部菜单栏的Run,选择Run All Tests(快捷键通常是
Ctrl+Shift+R,Mac上为Cmd+Shift+R),CLion会自动扫描所有已配置的测试目标并一次性执行。 - 或者打开左侧的Tests工具窗口(没显示的话从
View > Tool Windows > Tests调出),点击窗口顶部的「运行所有测试」按钮(播放图标样式),同样能一键启动全部测试。
方法二:自定义CMake目标来统一触发测试
如果你更习惯通过CMake目标来操作,可以在你的CMakeLists.txt里添加一个自定义目标,调用ctest(make test本质就是调用这个工具):
# 先把所有测试目标列出来,比如你有test_user、test_order、test_payment这些 set(ALL_TEST_TARGETS test_user test_order test_payment) add_custom_target(run_all_tests COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure # 失败时显示详细输出 DEPENDS ${ALL_TEST_TARGETS} # 确保先编译所有测试目标 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Executing all tests..." )
配置完重新加载CMake后,CLion的目标列表里就会出现run_all_tests,点击运行它就会先编译所有测试,再一次性跑完全部,还能直接看到失败测试的具体日志。
方法三:在CLion终端直接用命令行
打开CLion底部的Terminal窗口,切换到你的构建目录(比如cmake-build-debug),执行:
ctest --output-on-failure
这个和make test效果一致,但ctest支持更多参数,比如加-j4可以用4个线程并行跑测试,能大幅提升执行速度。
其实CLion对CMake测试的支持已经很完善了,优先用内置的Tests工具窗口或者Run All Tests功能最方便,自定义目标适合需要额外控制测试流程的场景。
内容的提问来源于stack exchange,提问作者Damir Porobic
相关产品推荐
相关产品推荐

