gtest使用初探

简介: 本文在 ubuntu18.04 上实现了 googletest 的全局安装,并在一个 demo项目中演示了使用 cmake 引入了该库,实现了在命令行中运行 c++ 单元测试,包括运行单个 TEST 函数。另外通过 vscode 的插件 C++ TestMate, 实现了像 golang 那样的通过点击按钮即可运行单个测试,极大地方便了开发。

一、在命令行中使用googletest

a. 安装

补充文档 gtest详细安装教程

  1. 下载安装包,此命令只会下载源码到 /usr/src
    sudo apt-get install libgtest-dev
  2. 编译并拷贝
# 先去到 /usr/src/gtest
$sudo cmake && sudo make
# 头文件会自动安装(/usr/include/gtest),但是库文件需要手动拷贝到系统搜索路径下
$sudo cp libgtest* /usr/lib/

b. 在项目中通过cmake引用

  1. 通过cmake 自带的 find_package 包管理命令来引入,以下 cmake文件是一部分,本质上生成 unit test的执行函数和普通的 c++ 可执行文件没有大的区别
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(runTests test/main_test.cpp)
target_link_libraries(runTests ${GTEST_BOTH_LIBRARIES} pthread)
install(TARGETS runTests)

find_package 会通过 /usr/share/cmake-3.25/Modules/FindGTest.cmake 这个文件来查找整个 GTest的库位置。 补充文档,关于 find_package 详细原理

c. 运行

执行完 cmake 和 make install 之后,去到 runTests 文件的安装路径

  • runTests --gtest_list_tests 列出所有的tests
  • runTests --gtest_filter=pico.test1 可以单独跑某个 test
    补充文档, googletest 详细教程

二、配合 vscode 插件一键运行UT

a. 安装和配置插件

在vscode 的插件搜索栏中搜索 googletest, 选择C++ TestMate 安装
配置,在 .vscode/setting中增加编译出来的可执行 test 文件的目录
补充文档 插件具体配置

# 配置成ut执行文件的路径,支持正则匹配
"testMate.cpp.test.advancedExecutables": [{"pattern":"${workspaceFolder}/cxx-lab/install/bin/*Tests"}],

避坑:在我的电脑上,普通的配置(test.executables + test.workingDirectory的模式)没有作用,只有 test.advancedExecutables 有作用,原因未知。

效果图

该插件,不仅可以运行 ut, 还可以进行 debug 操作,可以说是非常方便了

vscode通过插件一键运行 c++单元测试相关推荐

  1. c# vscode 配置_[VSCode插件推荐] Code Runner: 代码一键运行,支持超过40种语言

    记得两年多前,笔者那时还在写 PHP,同时需要写 Python 和 Node.js .所以在那时,支持多种语言的 VS Code 已经是笔者的主力编辑器了.唯一不足的是,笔者希望在VS Code里,能 ...

  2. VS Code 神器插件:代码一键运行,支持超过 40 种语言!

    程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_source= csdn_bw 记得两年多前,笔者那时还在写 PHP,同时需要写 Python 和 No ...

  3. Sublime Text 中使用OpenSees插件 自动补全及一键运行

    Sublime Text 3中的OpenSees插件配置 Sublime Text 中使用OpenSees插件 自动补全及一键运行 原文连接

  4. 40+个精选的VSCode前端插件,总有一款适合你

    有句话,事半功倍,其必然是借助了某些思想和工具. VSCode是我们前端开发的武器,本文40+精选插件,让其更加锋利,无坚不摧!! 必备的 下面这些必备的我就不说了 代码段 JavaScript \( ...

  5. vscode更改插件路径_vscode插件分享

    经常使用vscode进行编程,用了好久,今天换电脑,新装的vscode在下载插件时忘记了之前用的顺手的几个,这里记录一下,顺便分享给大家,希望大家编程效率越来越高,编程习惯越来越好,编程方式越来越拉风 ...

  6. vscode编写插件详细过程

    vscode编写插件详细过程 前言 之前编写了一个vscode插件用vscode写博客和发布,然后有园友要求写一篇来介绍如何开发一个vscode扩展插件,或者说介绍开发这个插件的过程.然而文章还没有写 ...

  7. VScode配置CMD本地运行环境(2.0)

    VScode配置CMD本地运行环境(2.0) 官方Task.json说明 完整的Task.json配置信息 Task.json预定义变量 看了很多网上的教程都说需要下载VScode的python插件, ...

  8. 在VsCode里编写和运行不同语言的程序

    文章目录 一.VsCode支持的编程语言 二.在VsCode里编写和运行不同语言的程序 (一)编写和运行C程序 1.编写源程序hello.c 2.运行程序,查看结果 (二)编写和运行Java程序 1. ...

  9. VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)

    VSCode拓展插件推荐(HTML.Node.Vue.React开发均适用) 相似功能的插件,不推荐全都装上,请挑选一个使用 本列表所有插件都经过本人测试,且认为相对好用,但是不代表不存在任何问题,大 ...

最新文章

  1. 什么是USDT以及如何使用它?
  2. eclipse中统计代码行数
  3. python whl大全
  4. linux centos 丢失 grub.conf 启动系统
  5. LoRaWAN与LoRa的区别!
  6. 给字符串对象定义一个repeat功能。当传入一个整数n时,它会返回重复n次字符串的结果。
  7. Android开发之WebView加载html数据去除Webview滚动条的方法
  8. web.xml 组件加载顺序
  9. 联想成立数据智能事业部,前京东蓝烨回归;华为或已向多国知识产权组织提交「鸿蒙」商标申请……...
  10. php里面的 n算是,用PHP中的bcmath计算第N个根
  11. 显卡给2个虚拟机_Java虚拟机线上问题排查的2个基本操作,你知不知道?
  12. 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和Eigen库
  13. daily scrum 11.9
  14. 深蓝学院-视觉SLAM从理论到实践基础知识导图
  15. python读取数据集前十行_Python读取数据集并消除数据中的空行方法
  16. 深度学习——最优化的学习笔记
  17. 根据MAC地址查询网卡厂商
  18. Forbidden什么意思
  19. 大型高并发网站之查询性能优化(综合篇)
  20. NG-ALAIN的使用

热门文章

  1. Python自动化 world 定制文字字体和大小
  2. 张宇1000题概率论与数理统计 第八章 统计量及其分布
  3. 使用预训练语言模型预测阶段:GPU、CPU性能差别【Pegasus】
  4. java基础面试题题库六(传智专修学院2017级Java4班)
  5. GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
  6. 短视频剪辑六要素及常用软件介绍
  7. #考研笔记#计算机问答题
  8. 高等概率论 Chapter 9. Integration with Respect to a Probability Measure1
  9. linux查杀minergate-cli/minerd病毒
  10. 学习业务流程图绘制方法(下)