当前位置: 首页 > news >正文

win10搭建gtest测试环境+vs2019

首先是下载gtest,这个我已经放在了博客上方资源绑定处,这个适用于win10+vs版本,关于liunx版本的不能用这个。

或者百度网盘链接:

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

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

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

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

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

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

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

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

我这里没图了,截一张大佬的图:

安装好会发现build文件夹里面生成了工程文件:

再用vs打开ALL_BUILD.vcxproj文件:

右键点击生成:

就会生成Release的静态库,再切换到Debug模式再跑一次:

查看build->lib文件夹下是否都有库文件了:

本人后面的操作都是针对release版本X64 希望大家与我保持一致,不然可能会有库的错误,建议第一遍通了再试其他模式下。

首先建立一个vs工程文件,将gtest项目里面的include文件夹下面的头文件和lib->release下面的库文件拷贝到新工程文件下面(当然也可以选择不拷贝,要是后续有报错再拷贝也可以)。

再再工程文件里面的源文件里新建一个cpp文件,我这里建立的1.cpp

将如下测试代码粘贴进去,这是一个简单的测试用例,为了验证环境是否搭建成功:

#include<iostream>
#include "gtest/gtest.h"
using namespace std;int add(int a, int b) {return a + b;
}//这里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。
}

此时检查一下自己工程上方是不是Release、x64:

接下来选择项目->属性:

对包含文件和库文件进行编辑,位置分别是gtest下面的include路径和lib路径,也就是上方复制到工程里面的两个文件夹路径,以下所有配置的平台都是Release、x64:

再将库文件加入进来,打开链接器->输入->附加依赖库->编辑:

gmock.lib
gmock_main.lib
gtest.lib
gtest_main.lib

此时返回项目,应该就不会有报错了,运行即可。如果想用Debug模式,配置过程是一样的。

简单的环境搭建和小例子就跑通啦,有什么问题欢迎评论区留言!

相关文章:

win10搭建gtest测试环境+vs2019

首先是下载gtest&#xff0c;这个我已经放在了博客上方资源绑定处&#xff0c;这个适用于win10vs版本&#xff0c;关于liunx版本的不能用这个。 或者百度网盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/15m62KAJ29vNe1mrmAcmehA 提取码&#xff1a;vfxz 下…...

【代码随想录】算法训练营 第二天 第一章 数组 Part 2

977. 有序数组的平方 题目 暴力解法 思路 原地更新所有数组元素为其平方数后&#xff0c;再使用sort函数排序&#xff0c;对vector使用sort函数时&#xff0c;两个参数分别是vector的起始元素和终止元素。 代码 class Solution { public:vector<int> sortedSquares(…...

在深度学习中,累计不同批次的损失估计总体损失

在深度学习中&#xff0c;累计不同批次的损失估计总体损失 在深度学习训练模型的过程中&#xff0c;通常会通过计算不同批次间的损失和&#xff0c;当作模型在这个训练集上的总体损失&#xff0c;这种做法是否具有可行性呢&#xff1f; 什么是总体损失? 总体损失是计算模型在…...

论文导读|八月下旬Operations Research文章精选:定价问题专题

编者按&#xff1a; ​ ​在“ Operations Research论文精选”中&#xff0c;我们有主题、有针对性地选择了Operations Research中一些有趣的文章&#xff0c;不仅对文章的内容进行了概括与点评&#xff0c;而且也对文章的结构进行了梳理&#xff0c;旨在激发广大读者的阅读兴…...

(三)Apache log4net™ 手册 -演示

0、引言 在开始本文之前&#xff0c;推荐您首先阅读 Apache log4net™ 手册中有关 介绍 与 配置 的相关内容。本文将通过实践分别为您演示如何使用 Visual Studio 2022 在 .NET Framework 项目和 .NET 项目下配置并使用 Log4Net。 1、为 .NET Framework 项目配置 Log4Net 1.1…...

VScode远程root权限调试

尝试诸多办法无法解决的情况下&#xff0c;允许远程登陆用户直接以root身份登录 编辑sshd_config文件 sudo vim /etc/ssh/sshd_config 激活配置 注释掉PermitRootLogin without-password&#xff0c;即#PermitRootLogin without-password 增加一行&#xff1a;PermitRootLo…...

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

文章目录 背景介绍1.1 TZC-400 简介1.2 TZC-400 使用示例1.3 TZC-400 interfaces1.3.1 FPID1.3.2 NSAID Regionregion 检查规则 1.4 Features1.5 Register summary1.6 TZC-400和TZPC和TZASC区别 背景介绍 为了确保内存能够正确识别总线的信号控制位&#xff0c;新增一个TrustZ…...

【C++】-c++11的知识点(中)--lambda表达式,可变模板参数以及包装类(bind绑定)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …...

浅析倾斜摄影三维模型(3D)几何坐标精度偏差的几个因素

浅析倾斜摄影三维模型&#xff08;3D&#xff09;几何坐标精度偏差的几个因素 倾斜摄影是一种通过倾斜角度较大的相机拍摄建筑物、地形等场景&#xff0c;从而生成高精度的三维模型的技术。然而&#xff0c;在进行倾斜摄影操作时&#xff0c;由于多种因素的影响&#xff0c;导致…...

【广州华锐互动】智轨列车AR互动教学系统

智轨列车&#xff0c;也被称为路面电车或拖电车&#xff0c;是一种公共交通工具&#xff0c;它在城市的街头巷尾提供了一种有效、环保的出行方式。智轨列车的概念已经存在了很长时间&#xff0c;但是随着科技的发展&#xff0c;我们现在可以更好地理解和欣赏它。通过使用增强现…...

驾驶数字未来:汽车业界数字孪生技术的崭新前景

随着数字化时代的到来&#xff0c;汽车行业正经历着前所未有的变革。数字孪生技术&#xff0c;作为一种前沿的数字化工具&#xff0c;正在为汽车行业带来革命性的影响&#xff0c;不仅改变着汽车制造和维护的方式&#xff0c;也为消费者带来了前所未有的体验。让我们一起探讨&a…...

JVM 性能调优参数

JVM分为堆内存和非堆内存 堆的内存分配用-Xms和-Xmx -Xms分配堆最小内存&#xff0c;默认为物理内存的1/64&#xff1b; -Xmx分配最大内存&#xff0c;默认为物理内存的1/4。 非堆内存分配用-XX:PermSize和-XX:MaxPermSize -XX:PermSize分配非堆最小内存&#xff0c;默认为物理…...

11在SpringMVC中响应到浏览器的数据格式,@ResponseBody注解和@RestController复合注解的功能详解

响应数据/转发或重定向页面 参考文章数据交换的常见格式,如JSON格式和XML格式 服务器将接收到请求处理完以后需要将处理结果告知给浏览器即响应,通常有响应要转发/重定向到的页面和响应数据(文本数据/json数据)两种方式 如果控制器方法返回值类型为void并且没有通过response…...

go 流程控制之switch 语句介绍

go 流程控制之switch 语句介绍 文章目录 go 流程控制之switch 语句介绍一、switch语句介绍1.1 认识 switch 语句1.2 基本语法 二、Go语言switch语句中case表达式求值顺序2.1 switch语句中case表达式求值次序介绍2.2 switch语句中case表达式的求值次序特点 三、switch 语句的灵活…...

sql 时间有偏差的解决方法

测试功能的时候发现记录的创建时间不对&#xff0c;死活对不上&#xff0c;下意识的以为是服务器时间有偏差&#xff0c;后来排查发现存入表中的时间是正常的&#xff0c;但是查询展示出来的时间是不对的&#xff0c;就去排查可能是查询sql格式化时间有问题&#xff0c;果不其然…...

Apache Lucene 7.0 - 索引文件格式

Apache Lucene 7.0 - 索引文件格式 文章目录 Apache Lucene 7.0 - 索引文件格式介绍定义反向索引字段类型段文档数量索引结构概述文件命名文件扩展名摘要锁文件 原文地址 介绍 这个文档定义了在这个版本的Lucene中使用的索引文件格式。如果您使用的是不同版本的Lucene&#xf…...

GEE:使用中文做变量和函数名写GEE代码

作者&#xff1a;CSDN _养乐多_ 啊&#xff1f;最近在编写GEE代码的时候&#xff0c;无意中发现 JavaScript 已经能够支持中文字符作为变量名和函数名&#xff0c;这个发现让我感到非常兴奋。这意味着以后在编程过程中&#xff0c;我可以更自由地融入中文元素&#xff0c;不再…...

针对量化交易SDK的XTP的初步摸索

这东西只要是调用API实现自动交易股票的&#xff0c;就不可能免费的接口。 并且用这些接口实现自动交易还得 归证券公司监管。比如 xtp出自 中泰证券&#xff0c;那么如果用xtp实现自动交易股票的软件&#xff0c;具体操作实盘的时候 不能跑再自己的电脑上&#xff0c;必须跑在…...

Unity编辑器从PC平台切换到Android平台下 Addressable 加载模型出现粉红色,类似于材质丢失的问题

Unity编辑器在PC平台下使用Addressable加载打包好的Cube&#xff0c;运行发现能正常显示。 而在切换到Android平台下&#xff0c;使用Addressable时加载AB包&#xff0c;生成Cube对象时&#xff0c;Cube模型呈现粉红色&#xff0c;出现类似材质丢失的问题。如下图所示。 这是…...

CSS 边框

CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色。 在四边都有边框 红色底部边框 圆角边框 左侧边框带宽度&#xff0c;颜色为蓝色 边框样式 边框样式属性指定要显示什么样的边界。 border-style属性用来定义边框的样式 border-style 值: none: 默认无边框…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...