使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。

  我这里就直接将所有命令行参数总结和罗列一下。如果想要获得详细的命令行说明,直接运行你的案例,输入命令行参数:/? 或 --help 或 -help

1. 测试案例集合

命令行参数

说明

--gtest_list_tests

使用这个参数时,将不会执行里面的测试案例,而是输出一个案例的列表。

--gtest_filter

对执行的测试案例进行过滤,支持通配符

?    单个字符

*    任意字符

-    排除,如,-a 表示除了a

:    取或,如,a:b 表示a或b

比如下面的例子:

./foo_test 没有指定过滤条件,运行所有案例
./foo_test --gtest_filter=* 使用通配符*,表示运行所有案例
./foo_test --gtest_filter=FooTest.* 运行所有“测试案例名称(testcase_name)”为FooTest的案例
./foo_test --gtest_filter=*Null*:*Constructor* 运行所有“测试案例名称(testcase_name)”或“测试名称(test_name)”包含Null或Constructor的案例。
./foo_test --gtest_filter=-*DeathTest.* 运行所有非死亡测试案例。
./foo_test --gtest_filter=FooTest.*-FooTest.Bar 运行所有“测试案例名称(testcase_name)”为FooTest的案例,但是除了FooTest.Bar这个案例

--gtest_also_run_disabled_tests

执行案例时,同时也执行被置为无效的测试案例。关于设置测试案例无效的方法为:

在测试案例名称或测试名称中添加DISABLED前缀,比如:

// Tests that Foo does Abc.
TEST(FooTest, DISABLED_DoesAbc) {  }

class DISABLED_BarTest : public testing::Test {  };

// Tests that Bar does Xyz.
TEST_F(DISABLED_BarTest, DoesXyz) {  }

--gtest_repeat=[COUNT]

设置案例重复运行次数,非常棒的功能!比如:

--gtest_repeat=1000      重复执行1000次,即使中途出现错误。
--gtest_repeat=-1          无限次数执行。。。。
--gtest_repeat=1000 --gtest_break_on_failure     重复执行1000次,并且在第一个错误发生时立即停止。这个功能对调试非常有用。
--gtest_repeat=1000 --gtest_filter=FooBar     重复执行1000次测试案例名称为FooBar的案例。

2. 测试案例输出

命令行参数

说明

--gtest_color=(yes|no|auto)

输出命令行时是否使用一些五颜六色的颜色。默认是auto。

--gtest_print_time

输出命令行时是否打印每个测试案例的执行时间。默认是不打印的。

--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH]

将测试结果输出到一个xml中。

1.--gtest_output=xml:    不指定输出路径时,默认为案例当前路径。

2.--gtest_output=xml:d:\ 指定输出到某个目录

3.--gtest_output=xml:d:\foo.xml 指定输出到d:\foo.xml

如果不是指定了特定的文件路径,gtest每次输出的报告不会覆盖,而会以数字后缀的方式创建。xml的输出内容后面介绍吧。

3. 对案例的异常处理

命令行参数

说明

--gtest_break_on_failure

调试模式下,当案例失败时停止,方便调试

--gtest_throw_on_failure

当案例失败时以C++异常的方式抛出

--gtest_catch_exceptions

是否捕捉异常。gtest默认是不捕捉异常的,因此假如你的测试案例抛了一个异常,很可能会弹出一个对话框,这非常的不友好,同时也阻碍了测试案例的运行。如果想不弹这个框,可以通过设置这个参数来实现。如将--gtest_catch_exceptions设置为一个非零的数。

注意:这个参数只在Windows下有效。

gtest命令行测试案例的更多相关文章

  1. Linux命令行测试网速speedtest.net

    Linux命令行测试网速speedtest.net 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带 ...

  2. I.MX6 Android CAN 命令行测试

    /********************************************************************* * I.MX6 Android CAN 命令行测试 * 说 ...

  3. [转]使用Linux命令行测试网速

    装speedtest-cli speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测 ...

  4. 使用Linux命令行测试网速

    安装speedtest speedtest是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架构来测量网络的上/下 ...

  5. 使用Linux命令行测试网速-----speedtest-cli

    https://github.com/sivel/speedtest-cli 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为“最后一公里”)的网络连接速度.在可用于测 ...

  6. monkey命令行测试

    一. 什么是Monkey monkey是google提供的一个用于稳定性与压力测试的命令行工具.monkey程序由android系统自带,位于/sdcard/system/framework/monk ...

  7. CDH spark 命令行测试

    一. 参考 https://www.cnblogs.com/bovenson/p/5801536.html [root@node- test]# chown hdfs:hdfs /root/test/ ...

  8. Junit 命令行测试 报错:Could not find class 理解及解决方法

    一.报错 : 『Could not find class』 下面给出三个示例比较,其中只有第一个是正确的. 1. MyComputer:bin marikobayashi$ java -cp .:./ ...

  9. laravel 命令行测试 Uncaught ReflectionException: Class config does not exist

    require __DIR__ . '/vendor/autoload.php'; $app = require_once __DIR__ . '/bootstrap/app.php'; config ...

随机推荐

  1. Maven Jetty插件使用

    本机环境 JDK8 Maven 3.5 Jetty 9.3 Eclipse Mars pom.xml配置 在你的 pom.xml 文件中添加 jetty 插件的描述信息 <build> & ...

  2. 我的QT5学习之路(二)——第一个程序

    一.前言 “工欲善其事,必先利其器”,上一节,我介绍了Qt的安装和配置方法,搭建了基本的开发平台.这一节,来通过一个简单的例子来了解Qt的编程样式和规范,开始喽~~~ 二.第一个程序——Hello W ...

  3. nginx编译问题:make[1]: *** [/usr/local/pcre//Makefile] Error 127

    解决方法: 是由于nginx高版本的需要使用pcre原文件路径. 解压pcre-7.9.tar.gz 例如解压后位置在 /home/wang/pcre-7.9位置 使用nginx配置的时候 ./con ...

  4. 【原创】如何设置Virtual Box虚拟机CentOS7为静态IP地址

    如何设置Virtual Box虚拟机CentOS7为静态IP地址 最近要搭建一个Kubernetes集群,需要设置虚拟机为静态IP地址不变.翻了一些资料,参差不齐,有些也比较过时了.自己实测总结了一下 ...

  5. eclipse的svn插件

    SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.xLinks for 1.8.x Release:Eclipse update site URL: http://subcl ...

  6. Oracle与MySQL使用区别

    与MySQL通过创建不同的数据库来存储表 Oracle提出表空间(tablespace)的概念作为逻辑上的存储区域来存储表, 而不同的表空间由不同的用户来管理 用户可以授予权限或角色 举例: 使用PL ...

  7. python七类之集合

    集合 一.关键字 : set 定义是 s = {}    #当里面没有元素的时候​​表现为字典数据类型 s = {} #空的{}代表空的字典,而不是集合 print(type(s)) 集合是不可哈希的 ...

  8. 每天一个Linux命令之mkdir

    Linux mkdir命令 mkdir [-p] filename 用于创建一个空目录 如果该目录下有相同名称的目录那么会报错 apple@apple-Pro  ~/Documents/java_d ...

  9. 从“顶点小说”下载完整小说——python爬虫

    此程序只是单纯的为了练习而做,首先这个顶点小说非收费型的那种小说网站(咳咳,我们应该支持正版,正版万岁,✌).经常在这个网站看小说,所以就光荣的选择了这个网站.此外,其实里面是自带下载功能的,而且支持 ...

  10. 基于visual studio 2017 以及cubemx 搭建stm32的开发环境(1)

    参考如下文档: 传送门:http://www.stm32cube.com/article/128 如果链接不存在的话,下载我截屏好的图: 传送门:https://pan.baidu.com/s/1NC ...