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

搭配Qt使用GTest/GMock时如何自定义公共main替代gtest_main

复用自定义Qt+GTest入口函数的方法
  • 将你编写的自定义main函数单独保存为一个独立的源文件,例如命名为qt_gtest_main.cpp,文件内容如下:
#include <QGuiApplication>
#include <gtest/gtest.h>

int main(int argc, char **argv) {
    QGuiApplication guiApplication(argc, argv);
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
  • 调整项目构建配置,不再链接GTest自带的gtest_main库,将上述qt_gtest_main.cpp加入到所有测试项目的编译源码列表中。如果有多个独立的测试可执行文件,可将该文件编译为通用静态库,所有测试目标直接链接该静态库即可。
  • 若使用CMake构建,可参考如下配置示例:
# 编译通用入口静态库
add_library(qt_gtest_main STATIC qt_gtest_main.cpp)
target_link_libraries(qt_gtest_main PUBLIC Qt::Gui GTest::gtest GTest::gmock)

# 单个测试目标配置示例
add_executable(xxx_test xxx_test.cpp)
target_link_libraries(xxx_test PRIVATE qt_gtest_main)

采用上述方案后,所有测试用例都会共用同一份main函数实现,无需在每个测试文件中重复编写。

内容的提问来源于stack exchange,提问作者Damir Porobic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:24:02