gtest下载编译

一、下载

  直接在google里搜gtest,选择官方网站进行下载

二、编译

  解压后,有个msvc目录,使用VS直接打开msvc中的工程文件,进行编译即可。
注意点:若编译gtest的VS为2008,那测试工程最好也是VS2008工程,这样可避免出现一些问题,如demo编译不过去等。
即是:要保证gtest和测试工程都是使用相同的VS版本进行编译的。编译成功后会在Debug或者Release中生成gtestd.lib或者gtest.lib文件。

三、gtest测试工程步骤

3.1 创建工程

VS中新建一个Win32 Console Application设置工程属性。步骤如下:
1)在C++-->General-->Additional Include Directories,添加gtest的头文件路径
2)在C++-->Code Generation-->Runtime Library,选择/MTd(Debug)或者/MT或者/MD(Release),此项可参考gtest的编译选项进行选择
3)在Linker-->Input-->Additional Dependencies,添加gtest.lib的路径(Debug:gtestd.lib;Release:gtest.lib)
4)可写简单的main函数Build一下,添加包含头文件时VS会显示符合的路径的头文件,保证包含文件路径的正确性。

3.2 已存在要测试的函数

3.3 编写测试案例

1)添加gtest.h文件
2)使用TEST宏
3)对检查点的检查使用EXPECT_* 和ASSERT_*的宏
区别是:
EXPECT_* 失败时,案例继续往下执行。
ASSERT_* 失败时,直接在当前函数中返回,当前函数中ASSERT_*后面的语句将不会执行。

4)为了使案例运行,需要在main函数中添加:
testing::InitGoogleTest(&argc, argv); //gtest的测试案例允许接收一系列的命令行参数,因此,我们将命令行参数传递给gtest,进行一些初始化操作。
return RUN_ALL_TESTS(); //运行所有测试案例
若使用_tmain函数需要添加stdafx.h头文件。

四、总结

4.1 优点

  测试案例本身就是一个exe工程,编译之后可以直接运行,非常的方便
  编写测试案例变的非常简单
  提供了强大丰富的断言的宏,用于对各种不同检查点的检查
  提高了丰富的命令行参数对案例运行进行一系列的设置

4.2 另一种创建测试工程方法(dll工程)

  1)复制整个工程,并重命名工程和vcproj名称
  2)右键打开工程属性-->配置属性-->常规General-->Configuration Type,修改为.exe
  3)C++-->General-->Additional Directies,添加gtest的头文件路径include
  4)C++-->Code Generation-->Runtime Library,Debug选择/MTd,Release选择/MT
  5)Linker-->General-->Additional Library Directories,添加gtest库所在的路径
  6)Linker-->Input-->Additional Dependencies,添加gtest的库名称
  7)Linker-->Input-->Module Definition File,删除.def文件
  8)在stdafx.h文件中添加#include "gtest/gtest.h"等相关的信息
  9)编写main函数
  10)编写测试案例

注意项:

  修改C++-->Preprocessor-->Preprocessor Definitions,将_WINDOWS改为_CONSOLE
  修改Linker-->System-->SubSystem,选择Console
TEST宏中的参数可随意写,但调用EXPECT*或者ASSERT*等宏时,里面的函数或者其他内容要存在

猜你喜欢

转载自www.cnblogs.com/Sheenagh/p/12215167.html