Google C++单元测试框架

简介: 一、概述  Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言、致命和非致命失败判断,能进行值参数化测试、类型参数化测试、“死亡测试”。

一、概述

  Google C++单元测试框架(简称Gtest),可在多个平台上使用(包括Linux, Mac OS X, Windows, Cygwin和Symbian),它提供了丰富的断言、致命和非致命失败判断,能进行值参数化测试、类型参数化测试、“死亡测试”。Gtest是一个开源的项目,其源码可以从这里下载,目前的代码发行版是1.6.0。

  编译

  源码包中的README文件说明了如何编译Gtest源码,目录msvc、xcode中分别包含了Windows、Mac OS X平台相关的项目文件,cmake目录下是使用CMake进行Makefiles和项目生成的相关文件,如果你在Unix/Linux下,直接在源码目录下执行make命令即可编

译;使用make编译过后并不需要执行make install命令安装Gtest相关的头文件和库文件,对自己的测试代码进行编译时,从当前目录引用头文件和库文件即可

二、执行用例

  源码文件的samples目录下为我们提供了多个用例,从sample1到sample9,Gtest作者由浅入深为我们讲解了Gtest的用法,怎么执行这些用例呢?

  首先进入源码目录下的make目录,其中包含了一个Makefile文件,执行make命令,make命令执行过后可以看到该目录下增加了几个文件,其中sample1_unittest就是sample1的可执行文件了。执行./sample1_unittest即可看到测试的运行结果:

  为编译生成其他用例的可执行文件,我们可以参照make目录下的Makefile文件,或者执行以下步骤:

  将gtest-main.a动态库文件拷贝到samples目录下,执行以下命令:

$ g++ -I ../include/ -c sample2_unittest.cc  

  以及:

$ g++ -I ../include/ sample2.o sample2_unittest.o gtest_main.a -lpthread -o test2

  最后我们得到了sample2的可执行文件test2,经过这几步,相信大家也懂得了如何生成自己的Gtest测试执行文件。

方法二:

  修改make目录下的Makefile文件,将sample1修改成目标样例,执行make即可

相关文章
|
6天前
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
97 64
|
2天前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。
|
6天前
|
Web App开发 敏捷开发 存储
自动化测试框架的设计与实现
【10月更文挑战第20天】在软件开发的快节奏时代,自动化测试成为确保产品质量和提升开发效率的关键工具。本文将介绍如何设计并实现一个高效的自动化测试框架,涵盖从需求分析到框架搭建、脚本编写直至维护优化的全过程。通过实例演示,我们将探索如何利用该框架简化测试流程,提高测试覆盖率和准确性。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
24天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
18天前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
53 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
18天前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
32 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
21天前
|
Web App开发 设计模式 测试技术
自动化测试框架的搭建与实践
【10月更文挑战第5天】本文将引导你理解自动化测试框架的重要性,并通过实际操作案例,展示如何从零开始搭建一个自动化测试框架。文章不仅涵盖理论,还提供具体的代码示例和操作步骤,确保读者能够获得实用技能,提升软件质量保障的效率和效果。
|
22天前
|
Web App开发 敏捷开发 Java
自动化测试框架的选择与应用
【10月更文挑战第4天】在软件开发的海洋中,自动化测试如同一艘航船,帮助开发者们快速穿越测试的波涛。选择适合项目的自动化测试框架,是确保航行顺利的关键。本文将探讨如何根据项目需求选择合适的自动化测试框架,并分享一些实用的代码示例,助你启航。
|
23天前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
【10月更文挑战第3天】在软件开发的海洋里,自动化测试犹如一艘航船,引领着项目向着质量的彼岸航行。本文将揭开自动化测试框架的神秘面纱,从理论到实践,深入浅出地探讨如何构建和运用这一工具,确保软件产品的稳定性和可靠性。我们将通过一个实际案例,展示自动化测试框架的搭建过程,以及它如何在提高测试效率、减少人力成本等方面发挥巨大作用。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的知识和启示。
|
24天前
|
敏捷开发 jenkins 测试技术
自动化测试框架的设计与实践
【10月更文挑战第2天】在软件开发周期中,测试阶段扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试已成为确保软件质量和加快交付速度的关键工具。本文将深入探讨自动化测试框架的设计原则、组件选择、以及实现过程。通过实际案例分析,我们不仅展示了如何构建一个健壮的自动化测试框架,还讨论了如何克服常见问题,并提出了优化策略,以帮助读者更好地理解自动化测试的价值和实施细节。