小白win10系统安装gtest流程

假设我新安装了一个win10系统,想在上面跑通一个gtest测试用例,那需要依次安装visual studio code、g++、cmake、git、gtest。

vs code安装

直接在vs code官网下载,这个不难。

g++安装

使用的是如下的链接:
g++下载
版本选择见下图:

注1:之前下载的那个版本不行,后面make的时候会出现不认识mutex的问题。这个问题的解决办法是在如下链接看到的:mingw64的posix版本详解 。
注2:一开始参考的这篇文章:Windows下如何安装MinGW,但是它的版本不对,所以不要按这个链接下载。但是可以按这个链接的添加环境变量的方式添加变量。
注3:浩哥在帮我解决报错的时候,把lib文件夹也加进去了,如下图:

注4: 添加完环境变量后需要重启下终端才能生效。

这时候就可以跑一个hello.cpp试试了。代码如下:

#include <stdio.h>int main(int argc, char* argv[])
{printf( "hello world\n");return 0;
}

注:上面是C语言的写法,C++使用iostream和std::cout。

跑通的界面如下图:

这时我发现了一个小问题,执行a.exe时很慢,并且右下角有弹窗,如下图:

解决方案是进入Windows 安全中心,如下图:

然后将云提供的保护关掉,如下图:

关了就好了。

cmake安装

参考链接是:Windows 10环境下如何安装CMake?(更新时间:2021.9.13)

注:安装好了后,用终端测试时,需要重新开终端。
安装好了的截图如下:

注:编译googletest的时候在终端用

cmake -G "MinGW Makefiles" ..
//这是cmake提供的方法,和cmake ..是一样的

注:在googletest里直接编译不行,得用cmake gui,见windows 下使用 cmake-gui 来编译第三方库的源代码
这里不行的原因可能是googletest比较大,里面有很多未知的东西,可能是某个文件导致了这条指令的失败。下面我们自己写的测试文件的CMakeLists.txt里,用cmake -G “MinGW Makefiles” …是可以的。 盲猜googletest里可能需要加更多的参数。

git安装

参考了如下的文档,基本都是默认配置,一路点击next即可:
win10系统Git安装教程『纯小白教程超详细』

gtest安装

这个最麻烦,参考了很多文档,请教了师父,最后总结出一份方法。随便找个目录(我找的是C:\Users\zhanghao\Downloads\code),打开终端。然后执行如下操作:

$ git clone https://github.com/google/googletest.git
$ cd googletest //进的是外层,里面还有一层googletest,里面那层用cmake gui会error,必须在这里做
$ mkdir build
$ cd build
$ 使用桌面的cmake gui做预编译。方法见上面。
$ mingw32-make //其实就是make

cmake和make跑通的情况如下图:

然后不需要install,在linux系统中,这步的目的是将C:\Users\zhanghao\Downloads\code\googletest\build\lib文件夹添加到/usr/local中,方便所有用户使用,这样就不用在CMkeLists.txt里增加这个库的链接。win10中可能也是同样的操作。但是我们手动做是一样的。
上述make了之后,就会在\googletest\build\lib里生产4个文件,我们需要的是其中2个二进制文件:libgtest.a和libgtest_main.a(如果自己写main函数,是需要的)。而另外2个文件是和mock相关的,我们不需要。这2个二进制文件才是我们要提取的gtest的精华。
方便起见,连同这4个文件一起,我们将这个lib拷贝走,总结步骤如下:

$ 在C:\Users\zhanghao\Downloads\code下新建kata文件夹。这才是我们最后写测试用例的地方。
$ 在kata里建一个3rd文件夹,将上述的\googletest\build\lib文件夹拷贝到3rd里。
$ 将\googletest\googletest\include文件夹拷贝到3rd里,如下图:

在kata文件夹里建好include和src文件夹,以及CmakeLists.txt,如下图:


接下来是很关键的写CmakeLists.txt文件。如下图:

源码见:

#设置cmake最小版本,要比本地的版本低。固定写法
cmake_minimum_required(VERSION 3.5)#建一个project,取名叫kata
project(kata)#设置cmake时要include的文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/include${CMAKE_CURRENT_SOURCE_DIR}/include
)#指定要链接的文件目录(这里并未执行链接)。因为lib下的.a文件都make过了,所以只需要链接一下即可。
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/lib
)#设置要编译的文件的名称,即src下面所有的.cpp文件都需要编译,他们整体取了个名字叫src_files
file(GLOB_RECURSE src_files${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
)#将上述的src_files添加到可执行文件里,生产的可执行文件叫${PROJECT_NAME}。固定写法
add_executable(${PROJECT_NAME} ${src_files})#告诉gcc去gtest这个目录(即link_directories)寻找lib库。(gtest这个名字是gcc取的)
target_link_libraries(${PROJECT_NAME} gtest)

这里也参考了单元测试其一:gtest。但是我没执行它的sudo make install,其余地方它的写法和我的方法也很像,但是它最后加了

add_test(Test  #测试名mytest
)#关键!添加测试

正是因为它将gtest放在了cmake里,所以它最后的打印没有下图的run,ok这种结构:

另外的2篇文章应该也是可以用的,需要我好好研究:

  1. Win10下VScode C++环境配置,Cmake与Gtest的简易使用
  2. 谷歌单元测试GTest测试方法使用

编写完CMakeList后,还需要写测试用例,在下图的src目录下创建main.cpp和test.cpp文件:

其中,main.cpp的内容是:

#include "gtest/gtest.h"int add(int a, int b)
{return a + b;
}//编写测试case
TEST(testCase, test1)
{EXPECT_EQ(add(2, 4), 6);   //判断结果是不是等于5,EXPECT_EQ表示 "等于"
}int main(int argc, char** argv)
{testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

test.cpp的内容是:

#include "gtest/gtest.h"int add2(int a, int b)
{return a + b;
}//编写测试case
TEST(testCase, test0)
{EXPECT_EQ(add2(2, 3), 5);   //判断结果是不是等于5,EXPECT_EQ表示 "等于"
}

然后再在\kata\build目录下打开cmd或者PowerShell(按shfit的同时右键)(注:不知道为啥git bash here不行,不能输出结果)。
执行如下命令:

cmake -G "MinGW Makefiles" ..
mingw32-make.exe
.\kata.exe

结果就出来了,如下图:

每次都要执行这3条指令好麻烦,在\kata\里写个build.bat,内容如下:

start cmd /k "cd build && cmake -G "MinGW Makefiles" .. && mingw32-make.exe && .\kata.exe"

如下图:

结果如下:

小白win10系统安装gtest流程相关推荐

  1. 单硬盘双 Win10 系统安装简明流程【是双 Win10 不是 Win+Linux】

    时间:2021-09-26-11:22 文章目录 0. 准备条件 1. 操作要点简述 2. 操作步骤详解 2.1 镜像烧录 2.2 划分新分区 2.3 安装第二个系统 2.4 完成后的强调 写在前面: ...

  2. w10系统没有打开方式_小白怎么制作微软官方win10系统安装启动U盘

    很多朋友都知道我们安装系统需要用到PE启动盘,这个安装工具很方便但是装完系统后大家会发现里面附带了很多的软件会拖慢我们的电脑运行速度,还需要一个一个的卸载很麻烦,其实微软有一个靠谱的工具很少有人知道! ...

  3. linux装回win10系统无法开机,ghost win10系统安装后无法启动怎么办

    很多下载了ghost win10系统的小伙伴发现安装完成以后,电脑不能正常的启动了,ghost win10系统安装后无法启动怎么办呢?其实ghost win10是一款不错的系统,但是也免不了会出现一些 ...

  4. win10系统安装eNSP

    win10系统安装eNSP 前言 最近在学计算机网络相关知识,想用eNSP做个实验,记录一下安装步骤 一次性安装成功,没踩坑 我安装时关闭了防火墙 eNSP依赖软件 Wireshark Winpcap ...

  5. win10系统如何安装iis信息服务器,win10系统安装iis服务功能的具体方法【图文教程】...

    IIS包含许多管理网站和Web服务器的功能,如果本地计算机上调试网站,就需要开启IIS服务,网站技术人员或者站长会用到.普通用户电脑没有iis服务功能,主要是由于IIS对普通用户无用处.为此,小编告诉 ...

  6. win10系统svn服务器端安装步骤,win10系统安装svn服务器的解决步骤

    有关win10系统安装svn服务器的操作方法想必大家有所耳闻.但是能够对win10系统安装svn服务器进行实际操作的人却不多.其实解决win10系统安装svn服务器的问题也不是难事,小编这里提示两点: ...

  7. python安装步骤win10-教你如何在Win10系统安装Python?

    Win10系统如何安装Python?Python是一门受广大用户所喜爱欢迎的.使用广泛的语言.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤 ...

  8. java怎么不安装到c盘的教程,帮您设置win10系统安装不了java的详细步骤

    我们在操作win10系统电脑的时候,常常会遇到win10系统安装不了java的情况,想必大家都遇到过win10系统安装不了java的情况吧,那么应该怎么处理win10系统安装不了java呢?我们依照1 ...

  9. win10下安装linux mint,win10系统安装Mint Linux 18的详细步骤

    win10系统使用久了,好多网友反馈说关于对win10系统安装Mint Linux 18设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统安装Mint Linux 18进行设置, ...

最新文章

  1. JavaScript的前世今生
  2. PHPMailer配置QQ邮箱163邮箱和谷歌邮箱发送邮件
  3. 2015人脸检测研究进展
  4. 大数据架构详解_【数据如何驱动增长】(3)大数据背景下的数仓建设 amp; 数据分层架构设计...
  5. 【百度地图API】如何调整结果面板的样式?如何获取指定页码的结果?
  6. 无人驾驶出租车遭警察拦截后欲“潜逃”,AI 是原罪?
  7. python模块的发布_(转载)Python中模块的发布与安装
  8. JS中元素的属性(class、style)操作
  9. 华为电脑终于又能搭载正版 Windows 系统了!
  10. 证明LDU分解的唯一性
  11. zookeeper进行leader选举
  12. 魔法风云纪无限元宝公益服务器,好玩网页游戏 2678魔法风云纪sf 神兽助战卡免费获得...
  13. LaTeX 在线编辑器(LaTeX online editors)
  14. Cholesky Decomposition (Cholesky分解)
  15. 汉文SEO大牛来分析灰色案例的百度优化
  16. 如何撰写优秀的谷歌AD广告标题?
  17. python怎么用圆周率_用python程序求圆周率到任意位
  18. 在面试软件测试岗位时被问到最多的问题
  19. verlay虚拟化技术_Overlay介绍
  20. 数据挖掘幕课第四章习题

热门文章

  1. 使用BEAGLE发生错误的解决办法ERROR: invalid ALT allele at 1:3439801 [-] /Linux下统计文件某元素出现的行数/Linux下删除包含某元素的行
  2. mosquitto源码分析
  3. 【Java源码分析】String 检测 startsWith
  4. 第一大题、分析(共14小题,满分100分)
  5. 浅谈分布式存储系统Pangu2.0——它让双11运维变得智能起来
  6. 三级、四级嵌入式考察范围
  7. Hive面试题系列1: 求连续三天购买指定需求
  8. 楚留香服务器维护,楚留香3月1日更新内容 楚留香2019年3月1日更新维护公告
  9. 本地计算机用户管理,管理本地用户与组账户
  10. 起底勒索软件Trigona:扮猪吃老虎,闷声发大财