vscode通过插件一键运行 c++单元测试
gtest使用初探
简介: 本文在 ubuntu18.04 上实现了 googletest 的全局安装,并在一个 demo项目中演示了使用 cmake 引入了该库,实现了在命令行中运行 c++ 单元测试,包括运行单个 TEST 函数。另外通过 vscode 的插件 C++ TestMate, 实现了像 golang 那样的通过点击按钮即可运行单个测试,极大地方便了开发。
一、在命令行中使用googletest
a. 安装
补充文档 gtest详细安装教程
- 下载安装包,此命令只会下载源码到 /usr/src
sudo apt-get install libgtest-dev - 编译并拷贝
# 先去到 /usr/src/gtest
$sudo cmake && sudo make
# 头文件会自动安装(/usr/include/gtest),但是库文件需要手动拷贝到系统搜索路径下
$sudo cp libgtest* /usr/lib/
b. 在项目中通过cmake引用
- 通过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
列出所有的testsrunTests --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++单元测试相关推荐
- c# vscode 配置_[VSCode插件推荐] Code Runner: 代码一键运行,支持超过40种语言
记得两年多前,笔者那时还在写 PHP,同时需要写 Python 和 Node.js .所以在那时,支持多种语言的 VS Code 已经是笔者的主力编辑器了.唯一不足的是,笔者希望在VS Code里,能 ...
- VS Code 神器插件:代码一键运行,支持超过 40 种语言!
程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_source= csdn_bw 记得两年多前,笔者那时还在写 PHP,同时需要写 Python 和 No ...
- Sublime Text 中使用OpenSees插件 自动补全及一键运行
Sublime Text 3中的OpenSees插件配置 Sublime Text 中使用OpenSees插件 自动补全及一键运行 原文连接
- 40+个精选的VSCode前端插件,总有一款适合你
有句话,事半功倍,其必然是借助了某些思想和工具. VSCode是我们前端开发的武器,本文40+精选插件,让其更加锋利,无坚不摧!! 必备的 下面这些必备的我就不说了 代码段 JavaScript \( ...
- vscode更改插件路径_vscode插件分享
经常使用vscode进行编程,用了好久,今天换电脑,新装的vscode在下载插件时忘记了之前用的顺手的几个,这里记录一下,顺便分享给大家,希望大家编程效率越来越高,编程习惯越来越好,编程方式越来越拉风 ...
- vscode编写插件详细过程
vscode编写插件详细过程 前言 之前编写了一个vscode插件用vscode写博客和发布,然后有园友要求写一篇来介绍如何开发一个vscode扩展插件,或者说介绍开发这个插件的过程.然而文章还没有写 ...
- VScode配置CMD本地运行环境(2.0)
VScode配置CMD本地运行环境(2.0) 官方Task.json说明 完整的Task.json配置信息 Task.json预定义变量 看了很多网上的教程都说需要下载VScode的python插件, ...
- 在VsCode里编写和运行不同语言的程序
文章目录 一.VsCode支持的编程语言 二.在VsCode里编写和运行不同语言的程序 (一)编写和运行C程序 1.编写源程序hello.c 2.运行程序,查看结果 (二)编写和运行Java程序 1. ...
- VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)
VSCode拓展插件推荐(HTML.Node.Vue.React开发均适用) 相似功能的插件,不推荐全都装上,请挑选一个使用 本列表所有插件都经过本人测试,且认为相对好用,但是不代表不存在任何问题,大 ...
最新文章
- 什么是USDT以及如何使用它?
- eclipse中统计代码行数
- python whl大全
- linux centos 丢失 grub.conf 启动系统
- LoRaWAN与LoRa的区别!
- 给字符串对象定义一个repeat功能。当传入一个整数n时,它会返回重复n次字符串的结果。
- Android开发之WebView加载html数据去除Webview滚动条的方法
- web.xml 组件加载顺序
- 联想成立数据智能事业部,前京东蓝烨回归;华为或已向多国知识产权组织提交「鸿蒙」商标申请……...
- php里面的 n算是,用PHP中的bcmath计算第N个根
- 显卡给2个虚拟机_Java虚拟机线上问题排查的2个基本操作,你知不知道?
- 视觉SLAM十四讲学习笔记-第三讲-旋转矩阵和Eigen库
- daily scrum 11.9
- 深蓝学院-视觉SLAM从理论到实践基础知识导图
- python读取数据集前十行_Python读取数据集并消除数据中的空行方法
- 深度学习——最优化的学习笔记
- 根据MAC地址查询网卡厂商
- Forbidden什么意思
- 大型高并发网站之查询性能优化(综合篇)
- NG-ALAIN的使用
热门文章
- Python自动化 world 定制文字字体和大小
- 张宇1000题概率论与数理统计 第八章 统计量及其分布
- 使用预训练语言模型预测阶段:GPU、CPU性能差别【Pegasus】
- java基础面试题题库六(传智专修学院2017级Java4班)
- GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
- 短视频剪辑六要素及常用软件介绍
- #考研笔记#计算机问答题
- 高等概率论 Chapter 9. Integration with Respect to a Probability Measure1
- linux查杀minergate-cli/minerd病毒
- 学习业务流程图绘制方法(下)