在CLion中如何一次性运行多个GTest测试可执行文件?
在CLion中如何一次性运行多个GTest测试可执行文件?
嘿,这个场景我太熟了!之前拆分项目做多个独立GTest可执行文件时,也纠结过怎么在CLion里一次性跑全量测试还能保留友好的测试UI,刚好有两个实用的办法,给你唠唠:
方法一:用CMake的CTest集成(推荐,保留CLion测试UI)
这个方法能完美适配CLion的测试面板,让你一次性跑所有测试的同时,还能像单个运行时那样查看每个用例的通过/失败状态,步骤超简单:
- 先修改你的
CMakeLists.txt,给每个GTest可执行文件注册测试用例,用add_test命令就行,举个例子:# 假设你有test_user和test_order两个测试可执行文件 add_executable(test_user test_user.cpp) target_link_libraries(test_user gtest gtest_main) # 给这个测试起个好认的名字,方便在CLion里识别 add_test(NAME UserTests COMMAND test_user) add_executable(test_order test_order.cpp) target_link_libraries(test_order gtest gtest_main) add_test(NAME OrderTests COMMAND test_order) - 回到CLion,打开顶部菜单栏的Run > Edit Configurations,点击左上角的
+号,选择CTest选项,给这个新配置起个名字(比如All Project Tests)。 - 在配置页面里,
Test suite选择你的项目根目录对应的测试集合(一般CLion会自动识别),如果不确定就留空,它会默认跑所有注册的测试。 - 保存配置后,直接运行这个CTest配置就行!CLion会自动先编译所有需要的测试可执行文件(不用你手动跑自定义编译目标),然后依次执行每个测试,最后在同一个测试UI面板里展示所有用例的结果,体验和单个运行完全一致~
方法二:自定义CMake运行目标(简单但无细分UI)
如果你不想折腾CTest,也可以直接加一个自定义目标来批量运行,不过这个方法的缺点是只能看到控制台的整体输出,没法查看单个测试用例的状态,适合快速验证:
在CMakeLists.txt里添加:
add_custom_target(run_all_tests COMMAND test_user COMMAND test_order # 依赖所有测试可执行文件,确保跑之前先编译好 DEPENDS test_user test_order WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
然后在CLion右侧的CMake面板里找到这个run_all_tests目标,右键选择Run,就能一次性跑完所有测试啦。
备注:内容来源于stack exchange,提问作者Don Garrett
相关产品推荐
相关产品推荐

