Gtest:死亡测试】的更多相关文章

转自:玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 一.前言 “死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃.通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”.gtest的死亡测试能做到在一个安全的环境下执行崩溃的测试案例,同时又对崩溃结果进行验证. 二.使用的宏 Fatal assertion Nonfatal assertion…
最近工作用到了GoogleTest来作单元测试,但是死亡测试的ASSERT_DEATH语句一直跑不通. GoogleTest会启动子进程来运行代码,并捕捉子进程的错误消息,这就是所谓的"死亡测试". 直接上代码: 1 #include <stdio.h> 2 #include <iostream> 3 4 #include <gtest/gtest.h> 5 6 using namespace std; 7 8 class X { 9 public:…
在最近的测试中,使用gtest测试框架对c语言代码进行测试,结果以XML文件来保存,但是测试结果的查阅和分析非常不方便.便想着把xml的结果直接转为HTML文件,方便和Jenkins系统对接显示.因现在的测试方法是使用Python脚本来控制gtest的测试文件运行的,故选用Python脚本来实现xml转html的功能. 先看结果: 个人对于html不是很熟悉,只是简单的了解各个元素.要求只有一个,生成的结果清晰明了,便于查阅即可. 环境准备: 安装libxml2 libxstl模块 Python…
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如下知识有一些了解: (1)C/C++编程方法 (2)makefile的编写 (3)linux命令行操作 (4)GTEST背景知识:它是用来干什么的?它用什么语言编写的?它的一些基本语法?等等 以上知识不需要做到熟能生巧,只要达到入门级别,使用GTEST不会费任何力气,毕竟GTEST也不是一个高门槛的…
所有的测试,都是让未知的东西和已知的东西进行比较,如果测试结果和预期的一样,那么就认为被测对象是OK的否则视为有问题. python的单元测试是写一堆继承了unittest.TestCase类,每个类里都会定义一个runTest函数,实际上这个函数是覆盖了基类的函数,脚本执行时调用unittest.main函数,unittest.main函数就会查找哪些类集成了TestCase并执行runTest函数 那么到了gtest里也是类似的,不过因为gtest是C/C++的单元测试框架,而C/C++里能…
一.起源 最近对单元测试比较感兴趣,之后就上网搜了一些测试的框架,C++项目使用的测试框架基本上都使用的GoogleTest,之后就开启了gtest的学习之路. 主要是根据<玩转Google开源C++单元测试框架Google Test系列(gtest)>这个系列的博客来学习的. 因为平时的项目主要是MFC项目,就想着给MFC程序搭建一个测试框架出来,上网搜主要都是<gtest测试MFC项目>类似的. 跟着网上的教程走了很多遍,都没有成功,网上又没有更多的相关资料,就放弃在MFC项目…
1.下载GTEST 下载链接为:https://code.google.com/p/googletest/downloads/list 目前GTEST的最新版本为gtest-1.7.0.zip,因此我们在本文中将以这个版本作为例子讲解. 2.认识文件夹 下载并解压之后,就可以看到gooletest(gtest-1.7.0)文件夹了,里面的内容如下图所示: 这么多文件看起来很麻烦.其实,GTEST提供了对于多个不同平台的支持,例如msvc文件夹是用在微软Visual Studio中,xcode文件…
一.前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例. 二.下载 如果不记得网址, 直接在google里搜gtest,第一个就是.目前gtest的最新版本为1.3.0,从下列地址可以下载到该最新版本: http://googletest.googlecode.com/files/gtest-1.3.0.zip http://googletest.googlecode.com/files/gtest-1.3.0.tar.g…
使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便.同时,gtest也为我们提供了一系列的运行参数(环境变量.命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制. 我这里就直接将所有命令行参数总结和罗列一下.如果想要获得详细的命令行说明,直接运行你的案例,输入命令行参数:/? 或 --help 或 -help 1. 测试案例集合 命令行参数 说明 --gtest_list_tests 使用这个参数时,将不会执行里面的测试案例,而是输出一个案例的列表.…
GTest为google开源的白盒单元测试跨平台测试框架,含丰富的断言.类型参数化测试.死亡测试.以及其他的测试选项设置.文件保存等,以下将对该项目C++的实现进行简要的分析,作为学习记录备份. 基本上内部使用了大量的宏.模板,因此在分析源码时跟踪会比较麻烦,这也是有的开发项目团队不推荐使用宏.模板等,但即使如此,宏与模板的强大功能仍然是学习和开发紧凑的源码的有力武器,此外GTest也使用了C++语言和VC编译器的某些特性(类的静态成员.全局变量的初始化)(令人有点儿XXX的感觉). 在分析源码…