VS2019编译和使用gtest测试(C++)

news2024/9/8 23:24:42

目录

一、首先下载gtest开源

二、使用gtest


一、首先下载gtest开源

https://pan.baidu.com/s/15m62KAJ29vNe1mrmAcmehA 
提取码:vfxz

下载下来解压到文件夹,再在文件夹里面新建一个build文件夹,如下:

再安装cmake,可以先检查一下是否安装了cmake,打开命令窗口,输入cmake -version:

我这里是已经安装好了,所以有显示版本号,如果没有可以下载:

链接:https://pan.baidu.com/s/1wsO51P4EIQtVN5_kLFbRtA 
提取码:mc79

然后双击就对了,我这里已经安装好了,无法提供截图,注意一点就是在让选择是否建立系统环境变量(path)的时候,记得勾上第二个建立系统环境变量!

下载好之后,记得检验一下是否安装成功,如果在普通用户下显示没有,建议用管理员身份打开命令窗口,再次尝试。

之后命令窗口进入创建的build文件夹路径里面执行cmake ../

安装好后,打开之前创建的build文件夹,发现里面多了一些文件,打开对应的ALL_BUILD.vcxproj文件:

右击ALL_BUILD,点击生成:

检查生成的库文件,对应文件夹是之前创建bulid文件夹下的lib的Debug文件夹:

二、使用gtest

在当前需要测试的项目下新建一个文件夹,再把之前生成的库文件,也就是lib->Debug下的文件夹拷贝到,新建的文件夹:

选择项目->属性,配置环境:

编辑包含目录为,之前拷贝过来的include目录路径:

在编辑库目录,同样的也是之前拷贝过来的lib目录路径:

选择链接器->输入->附加依赖项,输入以下库名:

最后开始写程序以及测试程序,如下:

demo.h放的add函数声明:

int add(int a, int b);

demo.cpp放的add具体实现:

#include "demo.h"

int add(int a, int b)
{
	return a + b;
}

main测试函数:

#include "demo.h"

#include "gtest/gtest.h"

//这里TEST中的两个参数是自定义的,主要是为了标记,可以自定义
//一个TEST就是一个测试用例,一个测试案例中可以有多个断言
TEST(lzb, test_01) 
{
	EXPECT_EQ(4, add(2, 2));
	EXPECT_GE(5, add(2, 2));
}

TEST(lzb, test_02) 
{
	EXPECT_LE(3, add(2, 2));
}

TEST(ly, test_01) 
{
	EXPECT_GT(add(2, 2), 1);
}

int main() 
{
	testing::InitGoogleTest();	//初始化,负责注册需要运行的所有测试用例
	RUN_ALL_TESTS();

	system("pause");
	return 0;		//宏RUN_ALL_TEST负责执行所有测试,如果全部成功则返回0,否则返回1。
}

输出结果:

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

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

相关文章

Cocos Creator2D游戏开发(6)-飞机大战(4)-敌机产生

敌机产生&玩家发射子弹 敌机产生: 创建一个空节点 创建一个敌机预制体 把敌机图片拖入预制体内 使用代码生成敌机 让敌机动起来 创建一个预制体enemy_prefab双击预制体enemy_prefab,然后拖入一个敌机图片,设置好方向和尺寸,一定要记得保存然后关闭(场景编辑器里面的保存)…

【前端 18】安装Node.js

Node.js 安装指南 在今天的博客中,我们将一起探讨如何在您的计算机上安装Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许你在服务器端运行 JavaScript 代码。无论您是前端开发者希望探索全栈开发,还是后端开发者寻…

【ROS 最简单教程 002/300】ROS 环境安装 (虚拟机版): Noetic

💗 有遇到安装问题可以留言呀 ~ 当时踩了挺多坑,能帮忙解决的我会尽力 ! 1. 安装操作系统环境 Linux ❄️ VM / VirtualBox Ubuntu20.04 👉 保姆级图文安装教程指路,有经验的话 可以用如下资源自行安装 ITEMREFERENCE…

Excel模拟计算演示-以矩阵乘计算密度为例

Excel模拟计算演示-以矩阵乘计算密度为例 1.参考链接2.CUDA_Occupancy_Calculator截图3.矩阵乘计算密度模拟计算的操作步骤及效果 安装好CUDA之后,/usr/local/cuda-12.1/tools/CUDA_Occupancy_Calculator.xls里会看到"TABLE(,B17)"这样的表达式,原来是模拟计算的结果…

Stable Diffusion 提示词攻略

一、提示词作用 提示词所做的工作是缩小模型出图的解空间,即缩小生成内容时在模型数据里的检索范围,而非直接指 定作画结果。 提示词的效果也受模型的影响,有些模型对自然语言做特化训练,有些模型对单词标签对做特化训练&#xf…

Lumos学习王佩丰Excel第八讲:IF函数逻辑判断

本节课与数学无关,与逻辑强相关。这节课对理工科,尤其是对有计算机基础的同学们会很友好。 一、使用IF函数 1、IF函数的基本用法 函数语法:IF(logical_test,[value_if_true],[value_if_false]) logical_test:判断条件 [value…

现在有什么赛道可以干到退休?

最近,一则“90后无论男女都得65岁以后退休”的消息在多个网络平台流传,也不知道是真是假,好巧不巧今天刷热点的时候又看到一条这样的热点:现在有什么赛道可以干到退休? 点进去看了几条热评,第一条热评说的…

品牌控价:维护市场秩序的关键策略

在当今竞争激烈的市场环境中,品牌控价成为了品牌发展的重要环节。品牌在拓展销售渠道时,为确保自身的形象与利益,通常会为经销商设定出货价和建议零售价。然而,部分经销商为追求短期利益,在电商平台上进行低价引流&…

Ollama怎么启动.gguf 大模型

环境: Llama3-8B 问题描述: Ollama怎么启动.gguf 大模型 解决方案: 要使用 Ollama 启动 .gguf 大模型,你可以按照以下步骤操作: 创建 Modelfile:首先,创建一个名为 Modelfile 的文件&…

【C++BFS算法】886. 可能的二分法

本文涉及的点 CBFS算法 LeetCod886. 可能的二分法 给定一组 n 人(编号为 1, 2, …, n), 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。 给定整数 n 和数组 dislikes ,其…

高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图

目录 高效工作流:用Mermaid绘制你的专属流程图 一、流程图的使用场景 1.1、流程图flowChart 1.2、使用场景 二、如何使用mermaid画出优雅的流程图 2.1、流程图添加图名 2.2、定义图类型与方向 2.3、节点形状定义 2.3.1、规定语法 2.3.2、不同节点案例 2.…

【C语言】整数类型及其数值范围(截断+数据)

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html ⚙️操作环境:Visual Studio 2022 目录 一、介绍 二、整数类型表 1.分析 2.小结 三、截断 1.什么是截断? 2.为什么需要截断…

【刷题汇总 -- 笨小猴、 主持人调度(一)、分割等和子集】

C日常刷题积累 今日刷题汇总 - day0251、笨小猴1.1、题目1.2、思路1.3、程序实现 2、主持人调度(一)2.1、题目2.2、思路2.3、程序实现 3、分割等和子集3.1、题目3.2、思路3.3、程序实现 -- 0/1背包问题 4、题目链接 今日刷题汇总 - day025 1、笨小猴 1…

JAW:一款针对客户端JavaScript的图形化安全分析框架

关于JAW JAW是一款针对客户端JavaScript的图形化安全分析框架,该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能,广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架&#x…

设计模式7原则

链接:设计模式7原则 (qq.com) 设计模式7原则JAVA代码实现 (qq.com)

2024年7月29日(web nginx)

web 一、web基本概念和常识 Web:为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。 Web 应用开发也经过了几代技术…

Linux基础复习(五)

前言 本文介绍了Linux常用命令,接Linux基础复习(四) 一、常用命令 命令通配符 在Linux中,命令通配符(也称为通配符模式或通配符表达式)是用来匹配文件名或其他字符串的一种特殊字符。这些通配符可以帮助…

leetcode日记(61)矩阵置零

看起来很简单的题目,最简单粗暴的方法是建立两个数组记录需要置零的行和列,但是题目中有一个进阶版要求: 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O…

VC14(VC2015)安装失败报错0x80240017

百度网盘链接:https://pan.baidu.com/s/1ybBriAXfxtvLvk7ve2zwIg?pwd1111 提取码:1111 必须按以下顺序安装: clearcompressionflag.exe、KB2919355、KB2932046、KB2959977、KB2937592、KB2938439、KB2934018。 KB2919442 是 Windows 8.1 更…