Google开源单元测试框架Google Test:VS2012 配置
来源:互联网 发布:川航张芸芸事件知乎 编辑:程序博客网 时间:2024/06/16 09:31
由题目可知,Google Test(简称gtest)是Google发布的一个开源C/C++测试框架,被应用于多个开源项目及Google内部项目中,包括Chrome浏览器、LLVM编译器架构、Protocol Buffers数据交换格式及工具、OpenCV计算机视觉库等。
gtest支持Windows、Linux、Mac OS X、Symbian等操作系统。该篇记录了Windows 10 64位系统下gtest的下载、安装、编译,建立一个测试Demo工程并编写一个简单的测试例程。
一、准备工作
gtest下载地址:https://github.com/google/googletest
编译环境:Visual 2012 Ultimate
二、编译
下载googletest-master并解压, 找到msvc目录:
注:从官方说明中指定:Windows Requirements:Microsoft Visual C++ v7.1 or newer,即如果使用Visual C++编译,要求编译器版本不低于7.1(Visual C++ 2003)。
打开msvc里面的工程文件gtest, 打开后会提示VS版本较高,需要升级工程文件,升完级后,我们直接编译里面的gtest工程,这里发现错误,编译不通过。
查找了一些配置教程,修改:include\gtest\gtest.h文件:
加入:#define _VARIADIC_MAX 10
:
再次编译成功,可分别在dubeg和release两种解决方案配置下分别编译:
三、测试Demo
新建一个VS 2012控制台程序,然后配置工程属性,包含以下几个操作:
- 在VC++目录下,设置gtest头文件路径和gtest.lib库目录;
- 在:C/C++ -> 代码生成 -> 运行库,若当前调试的是Debug版本,则设置为多线程调试(/MTd);若为release,则设置为多线程(/MT)。
一段示例代码:
#include <gtest\gtest.h>#include <iostream>int Foo(int a, int b) // 求a和b的最大公约数{ if (a == 0 || b == 0) { throw "don't do that"; } int c = a % b; if (c == 0) return b; return Foo(b, c);}TEST(FooTest, HandleNoneZeroInput){ EXPECT_EQ(2, Foo(4, 10)); // 失败时,案例继续执行 EXPECT_EQ(6, Foo(30, 18)); ASSERT_EQ(5, Foo(2.5, 5));// 失败时,当前函数返回 EXPECT_EQ(2, Foo(16, 18)); }int main(int argc, char* argv[]){ testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();}
在cmd中运行,结果如下:
其中,用到两个宏(属于EXPECT_*
系列和ASSERT_*
系列),用法在注释中大致提到。
由于学习还不够深入,只能总结出gtest的一些优点:
- 可使用一些简单的宏(如:TEST),这使得编写测试案例变的非常简单。
- gtest提供了强大丰富的断言的宏,用于对各种不同检查点的检查。
- Google开源单元测试框架Google Test:VS2012 配置
- Google的开源C++单元测试框架Google Test初探
- Google的开源C++单元测试框架Google Test初探
- Google的开源C++单元测试框架Google Test
- Google Test -- C++单元测试框架
- Google Test单元测试框架(1)
- Google JS Test Javascript单元测试框架
- 玩转Google开源C++单元测试框架Google Test系列
- 玩转Google开源C++单元测试框架Google Test系列
- 玩转Google开源C++单元测试框架Google Test(gtest)
- 玩转Google开源C++单元测试框架Google Test系列
- 玩转Google开源C++单元测试框架Google Test系列
- Google Test单元测试使用
- 单元测试 Google Test 使用
- codeblocks+Mingw 下配置开源c++单元测试工具 google test
- google单元测试框架
- 集成单元测试google test (转载)
- 单元测试利器之google test
- Android-Spinner的使用以及两种适配器
- 反汇编工具objdump的使用简介
- 正则表达式
- 关于理想团队的构建和对软件流程的理解
- 集合框架--LinkedList集合练习堆栈和队列
- Google开源单元测试框架Google Test:VS2012 配置
- NS2能量模型
- java jdbc连接数据库,并对指定表进行增删改查
- 1005. 继续(3n+1)猜想 (25)
- 粒子群算法
- hive相关错误:java.lang.RuntimeException: Error in configuring object
- 第三方分享
- bzoj2753滑雪与时间胶囊
- SparkShell实战