GTest和Catch2单元测试学习(附Cmake测试代码库)

news2024/11/20 4:55:38

kevin_CTest

CTest 单元测试学习
Gitee库: https://gitee.com/bigearrabbit/kevin_ctest.git
示例多是从网页文章上摘取的,大部分记录在下面,或者源码内。供学习参考。

CTest

学习Catch2 框架

  • 单个文档的测试架构,使用方便,
  • 据说 使用率排第二
  • CSDN 文章 catch2:一个好用的C++单元测试框架
  • 视频教程 https://www.bilibili.com/video/BV1pz4y1i7Lm

GoogleTest

  • 学习Google Test框架
  • 据说 使用率排第一

使用说明

google test sample

参考:

  • CMake C++开发 windows 下 googletest 模板项目教程搭建

  • GoogleTest使用教程

编译和运行测试
  1. clone代码:
git clone https://gitee.com/bigearrabbit/kevin_ctest.git
  1. 检出子模块
    使用小乌龟或命令行检出子模块
[submodule "3rdParty/googletest"]
	path = 3rdParty/googletest
	url = https://github.com/google/googletest.git
  1. 编译
  • 在项目的根目录下创建一个构建目录,配置项目,构建项目并运行测试:
mkdir build
cd build
cmake ..
。。。。
  • 或 用Vscode打开项目,Cmake编译即可,已经配置好了
  1. 启动测试

可以只编译一个测试:

  • 火箭🚀在哪里,应该只运行哪个
  • 这个锤子🔨在某个项目上,编译就只编译这个

在这里插入图片描述

  • 运行
    在TESTING模块里面可以选择全运行或者只运行某个测试。
    在这里插入图片描述

  • CMakeLists里面运行
    这里可以逐个运行测试
    在这里插入图片描述

  • 底部工具条控制:
    在这里插入图片描述
    这个在icon模式时没有出来,compact可以
    在这里插入图片描述

解决错误:
  • gtest.lib(gtest-all.cc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值
    参考: https://blog.csdn.net/l1216766050/article/details/128571511
 # 使用来全局设置运行时库。 
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
set(CMAKE_CXX_FLAGS_RELEASE "/MT")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SQL】已解决:SQL错误(15048): 数据兼容级别有效值为100、110或120

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决SQL错误(15048): 数据兼容级别有效值为100、110或120 在数据库开发和管理过程中,我们经常会遇到各种各样的错误。本文将详细分析SQL错误(15048)的背景、可能原因、…

转型AI产品经理前需要搞懂的9个问题

笔者近10年来一直工作于AI领域技术和产品一线,今天分享9个大家普遍关注却少有人系统回答的问题。 1.下一个10年,AI产业在国内的发展和职业发展的机遇如何? 从四方面看: (1)技术角度:逐步成熟…

将代码转为Mac窗口风格的图片

前言 在写博客的时候总觉得默认的代码样式不好看,希望用类似Mac窗口那种三个小圆点的风格转成图片贴出来,所以自己动手做了一个。 一、效果展示 二、在线使用 代码图片生成工具:有码高清 三、源码

【Python机器学习】算法链与管道——利用网格搜索选择使用哪个模型

我们可以进一步将GridSearchCV和Pipeline结合起来:还可以搜索管道中正在执行的实际步骤(比如用StandardScaler还是用MinMaxScaler)。这样会导致更大的搜索空间,应该予以仔细考虑。 尝试所有可能的解决方案,通常并不是…

MySQL—创建查看删除备份恢复数据库

创建数据库 创建数据库 LLF_DB01CREATE DATABASE LLF_DB01删除数据库DROP DATABASE LLF_DB01创建一个使用utf8字符集的数据库并带校对规则的数据库CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin 查看、删除数据库 显示所有的数据库SHOW DATABASES显示数据库…

C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络

🎯要点 🎯机器人群行为配置和C行为实现:🖊脚底机器人狭隘空间导航避让障碍物行为 | 🖊脚底机器人使用摄像头耦合共振,实现同步动作 | 🖊脚底机器群使用相机,计算彼此间“分子间势能…

opencv实现目标检测功能----20240704

早在 2017 年 8 月,OpenCV 3.3 正式发布,带来了高度改进的“深度神经网络”(dnn)模块。 该模块支持多种深度学习框架,包括 Caffe、TensorFlow 和 Torch/PyTorch。这次我们使用Opencv深度学习的功能实现目标检测的功能,模型选用MobileNetSSD_deploy.caffemodel。 模型加载…

Linux 文件系统以及日志管理

一、inode 与block 1. inode 与block详解 在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取…

传感器标定(一)摄像头内参标定

一、使用ROS进行手动标定安装 1、安装 image-view &usb_cam ⽤于驱动相机 sudo apt-get install ros-melodic-image-view sudo apt-get install ros-melodic-usb-cam2、查看系统视频设备 v4l2- ctl -d /dev/video0 --all 查询所有相机具体的参数包括width和height ls /…

JavaScript原型对象和对象原型、原型继承、原型链

目录 1. 原型对象和对象原型2. 原型继承3. 原型链 1. 原型对象和对象原型 作用: 以前通过构造函数实例化的对象,每个实例化的对象的属性和方法都是独立的,会造成内存浪费。通过prototype对象原型能实现不同实例化对象共享公用的属性和方法,减…

macos下搭建minikube dashboard的启动

背景 最近在复习一下k8s环境相关的知识,需要在自己电脑上搭建一个minikube的环境供自己使用。但是因为docker的镜像仓库最近被墙了,因此在执行minikube dashboard的时候,拉不到相应的镜像,就导致页面看不到相应的一些信息因此本文…

嵌入式上gst rtsp server opencv mat

0 安装gstreamer sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-…

如何用手机拍出高级感黑白色调照片?华为Pura70系列XMAGE演绎黑白艺术

在影像的世界里,色彩可以让画面更丰富,更具有表现力,往往也能带来更多的视觉冲击。但有时候,黑白却有着一种独特的魅力。华为Pura 70系列XMAGE黑白风格,则给我们了一把通过纯粹艺术大门的钥匙。 XMAGE黑白并非简单的色…

水利行业的智慧化转型实践:结合具体案例,探讨智慧水利在提升水资源利用效率、改善水生态环境方面的实际效果

目录 一、引言 二、智慧水利的定义与意义 三、智慧水利在提升水资源利用效率方面的实践 1. 智慧灌溉系统 2. 智慧供水系统 3. 智慧水务管理平台 四、智慧水利在改善水生态环境方面的实践 1. 智慧水质监测系统 2. 智慧水生态修复系统 3. 智慧防洪减灾系统 五、具体案例…

利用YOLOv8识别自定义模型

一、背景介绍 最近项目需要识别自定义物品,于是学习利用YOLOv8算法,实现物品识别。由于物体类别不再常规模型中,因此需要自己训练相应的模型,特此记录模型训练的过程。 二、训练模型的步骤 1.拍照获取训练图片(训练图…

ubuntu软件源的两种格式和环境变量

1. ubuntu的/etc是什么目录? 在Ubuntu操作系统中,/etc/是一个特殊的目录,它包含系统的配置文件。这些配置文件用于设置各种系统和应用程序的参数和选项。 一般来说,用户可以在这个目录下找到各种重要的配置文件,如网络…

Os-hackNos

下载地址 https://download.vulnhub.com/hacknos/Os-hackNos-1.ova 环境配置如果出现,扫描不到IP的情况,可以尝试vulnhub靶机检测不到IP地址解决办法_vulnhub靶机扫描不到ip-CSDN博客 信息收集 确定靶机地址: 探测到存活主机192.168.111.…

背包问题(一)

一.P3985 不开心的金明(01背包变式) 解析: 一开始没有看数据范围,直接当01背包直接写了,结果最后4个测试点RE,一看到数据范围就老实了,1e9的数据,数组直接炸,所以不能直接使用一维的01背包.看了一下题解,部分人是通过极差对数据进行分类,按照300进行分开,使用贪心和dp一起做. …

JavaScript 原型链那些事

在讲原型之前我们先来了解一下函数。 在JS中,函数的本质就是对象,它与其他对象不同的是,创建它的构造函数与创建其他对象的构造函数不一样。那产生函数对象的构造函数是什么呢?是一个叫做Function的特殊函数,通过newFu…

HarmonyOS - 通过.p7b文件获取fingerprint

1、查询工程所对应的 .p7b 文件 通常新工程运行按照需要通过 DevEco Studio 的 Project Structure 勾选 Automatically generate signature 自动生成签名文件,自动生成的 .p7b 文件通常默认在系统用户目录下. 如:C:/Users/zhangsan/.ohos/config/default…