gtest思路和应用介绍,VS2019编译googletest1.3.0出错,和编译1.11.0的方法 在ubuntu和windows中

一. 1.3.0的编译错误解决

1.30版本是个很早的版本,其中的mvc文件夹中的sln文件时vs2005的,所以会有些小问题,类似:

严重性    代码    说明    项目    文件    行    禁止显示状态 错误    C1041    如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /F

挨个项目做如下3个属性设置:

链接器   之   调试   之   生成调试信息    设置成 (是(/DEBUG))

C/C++  之  常规  之  调试信息格式   设置成 (C7 兼容(/Z7)

C/C++ 之 代码生成  启用字符串池 设置成 (是(/GF)

重新编译成功。
 

二. 编译1.11.0

安装cmake

使用cmake-gui 能够发现很多选项

第一次单击congfigure时,选择 vs2019和x64

第二次单击congfigure之前,做如下图所示配置,勾选:

    ,于是就生成了项目文件:googletest-distribution.sln

用VS2019打开这个.sln文件, 

在“ALL BUILD”上右击,选择“生成”;

生成后,再在“INSTALL”上右击,选择“生成”,则会把.h  .lib  .dll文件安装到系统目录中去,例如上图配置中的CMAKE_INSTALL_PREFIX:  d:/Program Files/gtest-...11_0/

然后把其中的bin目录绝对路径添加到系统的path环境变量中,以便程序运行时能够动态连接到相应的 .dll文件们。

可以在VS中找到测试项目,加断点追踪学习。

在CMD中运行其中最简单的测试项目:

三. gtest 思路和使用介绍

官方文档相当好:

Googletest Primer | GoogleTest

文字简练通顺,不太需要发翻译。若需翻译,评论区留言^^

比如,

1. 一个test program 包含多个 test suite, 一个test suite 包含多个 test。相关的tests 放入同一个test suite中。

2. 每个test的运行结果可是 successnonfatal failure, or fatal failure.

3. test fixture class 测试用例固定装置类,是用户代码中,多个测试公用的对象或子例程代码的复用封装。

4. TEST注册一个测试代码段,针对某个test suite中的某个test。所以,TEST(...)的参数分别是TEST(testsuite的名称,test的名称)。比如,你可能定义了一组复数的四则运算和其他求模和辐角等的运算,想把针对这些测试的tests放在一个test suite中,取名为complexOperatorsSuite,其中的加法测试用例取名为 addTest,则可以写成:

TEST(complexOperatorsSuite, addTest ){

EXPECT_EQ(...);

}

gtest的main函数隐藏在它生成的 .lib文件中。

gtest会自动收集类似 TEST{}这样的代码结构作为运行项。

不想多说了,看着sample例程学起来比较容易,程序员还是适合看代码体会式的学习^^

猜你喜欢

转载自blog.csdn.net/eloudy/article/details/120245199