GTest简介
欢迎来到Google Test,Google Test是一个C++的测试框架。
这个仓库是之前分开的Google Test 和Google Mock合并构成的,因为两者在维护和发布都是非常相关的。
请参看上面的项目主页,获取更多的信息,包含邮件列表,通过这个邮件列表可以很方便的提问问题、参与讨论和开发。这里在OFTC上有一个IRC频道(irc.oftc.net)#gtest,请加入我们。
获取Google Test的入门信息,已经发布在Google Test Primer文档中。
Google Mock是Google Test的一个扩展,用来写和使用C++ Mock类,请参考独立的Google Mock 文档
更多关于Google Test的详细文档(包含构建说明),在项目内部的googletest/README.md文件中。
特征
- 一个单元测试框架
- 测试发现(Test discovery)
- 丰富的断言集合
- 用户自定义断言
- 死亡测试
- 致命或者非致命的失败
- 值参数化的测试
- 类型参数化的测试
- 运行测试多种选项
- 产生XML格式的测试报告
平台
Google Test已经被应用在多种平台
- Linux
- Mac OS X
- Windows
- Cygwin
- MinGW
- Windows Mobile
- Symbian
谁在使用Google Test
除了许多Google内部的项目,Google Test也在下面这些著名的项目中使用。
- Chromium 项目,是Chrome浏览器和Chrome OS的后台
- LLVM 编译器
- Protocol Buffer,Google的内部数据交换格式
- OpenCV 计算机视觉开源库
相关的开源项目
Google Test UI是一个测试运行器,运行你的测试二进制,允许通过进度条来跟踪测试执行的过程,并且显示一个测试失败的用例的List,点击每一个元素,显示测试失败的文本描述,Google Test UI是使用C#语言编写的。
GTest TAP Listener是一个Google Test的事件监听程序,对于测试输出实现了TAP协议,如果你的测试执行程序运行在TAP协议下,这个工具是有用的。
需求
Google Test被设计成使用非常少的额外需求,来构建和在项目使用,但是还是有一些需求的。目前,Google Test支持Linux、Windows、Mac OS X 和Cygwin平台,Google Test将要尽他们最大的努力支持其他的平台,比如Solaris,AIX和z/OS,然而,由于Google Test的核心开发人员没有这些平台的访问权限,Google Test可能会在这些平台有一些突出的问题,如果你在你的平台上使用Google Test遇到什么问题,那么请联系[email protected]通知Google Test的开发人员,修复这些问题的补丁将会很快发布。
Linux 需求
从源码编译构建Google Test,有下面几个基本的需求:
- 与GNU兼容的Make或者gmake工具
- POSIX标准shell
- POSIX正则表达式
- 一个C++98标准兼容的编译器
Windows 需求
Microsoft Visual C++7.1 或者更新的版本
Cygwin 需求
Cyswinv1.5.25或者更新的版本
Max OS X 需求
- Max OS X v10.4 Tiger或者更新的版本
- Xcode开发工具
对于贡献者的需求
我们欢迎Patches,如果你计划贡献一个Patch,你需要构建Google Test和Google Test本身的测试,这样会有更多额外的需求:
- Python 2.3版本或更新的版本,用来运行测试,或者根据模板重新产生特定的源代码。
- CMake 2.6.4 或者更新的版本
重新产生源文件
一些Google Test的源代码文件是通过脚本,根据模板产生的,比如文件include/gtest/internal/gtest-type-util.h.pump 是用来在同样的目录中产生gtest-type-util.h 源文件的。
除非是你要修改它们,否则不需要担心产生源文件,那么你需要修改相关的.pump文件,并且运行’pump.py’脚本文件,详细信息参考Pump Manual
贡献代码
我们欢迎Patch,请阅读开发者指导用来指导如何贡献源码,需要注意的是,确定你已经签署了贡献协议条约,否则,我们不会接受这些patch。
测试快乐!