澳门葡萄京官方网站-新葡萄京娱乐场网址

热门关键词: 澳门葡萄京官方网站,新葡萄京娱乐场网址

玩转Google开源C 单元测试框架Google Test系列(gtes

作者: 摄影资讯  发布:2019-12-22

结构参数

  • 三脚架类型:快装板
  • 其他品质:通用金爵KJ体系, 金士KS类别, 勇士KB种类(L=60mm卡塔尔国

翻开完整参数>>

五、总结

本篇主要介绍了gtest案例实施时提供的一些参数的采用方法,那一个参数都非常管用。在骨子里编纂gtest测验案例时必定会要求选用的时候。最少自身今后相比较常用的便是:

  1. --gtest_filter

  2. --gtest_output=xml[:DIRECTORY_PATH|:FILE_PATH]

  3. --gtest_catch_exceptions

最终再下结论一下自个儿利用进度中相见的多少个难点:

1. 同不日常间利用--gtest_filter和--gtest_output=xml:时,在xml测验报告中能不能够只包蕴过滤后的测量试验案例的新闻。

  1. 有的时候,笔者在代码中设置 testing::GTEST_FLAG(catch_exceptions卡塔尔 = 1和本身在指令行中使用--gtest_catch_exceptions结果稍有两样,在代码中设置FLAG格局有的时候候捕捉不了有个别非凡,可是通过命令行参数的方法雷同都不会格外。这是自己已经遭逢过的二个难题,最终本人的拍卖办法是既在代码中安装FLAG,又在命令行参数中传来--gtest_catch_exceptions。不晓得是gtest在catch_exceptions方面非常不够稳固,依然自个儿要好测量试验案例的难点。

多元链接:

1.玩转Google开源C 单元测量试验框架Google Test类别(gtest卡塔尔之生机勃勃 - 初识gtest

2.玩转Google开源C 单元测量检验框架Google Test系列(gtest卡塔尔(英语:State of Qatar)之二 - 断言

3.玩转谷歌(Google卡塔尔(قطر‎开源C 单元测量试验框架谷歌(Google卡塔尔(英语:State of Qatar) Test连串(gtest卡塔尔国之三 - 事件机制

4.玩转Google开源C 单元测量检验框架谷歌(Google卡塔尔(英语:State of Qatar) Test体系(gtest卡塔尔(英语:State of Qatar)之四 - 参数化

5.玩转谷歌开源C 单元测量检验框架谷歌 Test体系(gtest卡塔尔(قطر‎之五 - 呜乎哀哉测量检验 

6.玩转Google开源C 单元测验框架谷歌 Test类别(gtest卡塔尔之六 - 运转参数

7.玩转谷歌(Google卡塔尔(قطر‎开源C 单元测验框架谷歌(Google卡塔尔(英语:State of Qatar) Test体系(gtest卡塔尔(قطر‎之七 - 深切解析gtest

8.玩转Google开源C 单元测量试验框架Google Test体系(gtest卡塔尔(英语:State of Qatar)之八 - 构建本身的单元测量检验框架

三、参数列表

问询了地方的剧情,小编这里就径直将具备命令行参数计算和陈列一下。如若想要拿到详细的命令行表明,直接运营你的案例,输入命令行参数:/? 或 --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的案例。

 

  1. 测量试验案例输出
命令行参数 说明
--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的输出内容后面介绍吧。 

 

  1. 对案例的极其管理
命令行参数 说明
--gtest_break_on_failure 调试模式下,当案例失败时停止,方便调试
--gtest_throw_on_failure 当案例失败时以C 异常的方式抛出
--gtest_catch_exceptions

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

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

二、基本介绍

日前提到,对于运营参数,gtest提供了两种设置的不二诀要:

  1. 系统意况变量

  2. 命令行参数

  3. 代码中钦赐FLAG

因为提供了两种门路,就能够有优先级的难点, 有二个尺度是,最终设置的相当会生效。可是计算一下,平常状态下,比极漂亮丽的事情未发生前级为:

命令行参数 > 代码中钦定FLAG > 系统情况变量

何以大家编辑的测量检验案例能够管理这么些命令行参数呢?是因为大家在main函数中,将命令行参数交给了gtest,由gtest来解决命令行参数的主题素材。

int _tmain(int argc, _TCHAR* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

 

如此这般,大家就具有了吸取和响应gtest命令行参数的力量。假诺急需在代码中内定FLAG,能够接纳testing::GTEST_FLAG这么些宏来设置。比方相对于命令行参数--gtest_output,能够应用testing::GTEST_FLAG(output)

"xml:";来设置。注意到了,无需加--gtest前缀了。同一时间,推荐将那句放置InitGoogleTest从前,那样就足以使得对于相符的参数,命令行参数优先级高于代码中内定。

图片 1

int _tmain(int argc, _TCHAR* argv[])
{
    testing::GTEST_FLAG(output) = "xml:";
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

图片 2

 

最后再来说下第风姿浪漫种设置形式-系统遭遇变量。尽管急需gtest的安装系统处境变量,必得注意的是:

1. 体系境况变量全大写,举例对于--gtest_output,响应的种类情形变量为:GTEST_OUTPUT

2.  有二个命令行参数例外,那正是--gtest_list_tests,它是不接收系统情状变量的。(只是用来罗列测验案例名称)

一、前言

使用gtest编写的测量试验案例常常本身正是三个可实施文件,由此运维起来相当平价。同一时间,gtest也为大家提供了生龙活虎类别的周转参数(情形变量、命令行参数或代码里钦定),使得大家得以对案例的实行进行一些管用的决定。

四、XML报告输出格式

图片 3

<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="3" failures="1" errors="0" time="35" name="AllTests">
  <testsuite name="MathTest" tests="2" failures="1"* errors="0" time="15">
    <testcase name="Addition" status="run" time="7" classname="">
      <failure message="Value of: add(1, 1)  Actual: 3 Expected: 2" type=""/>
      <failure message="Value of: add(1, -1)  Actual: 1 Expected: 0" type=""/>
    </testcase>
    <testcase name="Subtraction" status="run" time="5" classname="">
    </testcase>
  </testsuite>
  <testsuite name="LogicTest" tests="1" failures="0" errors="0" time="5">
    <testcase name="NonContradiction" status="run" time="5" classname="">
    </testcase>
  </testsuite>
</testsuites>

图片 4

从报告里能够观望,大家事前在TEST等宏中定义的测量试验案例名称(testcase_name卡塔尔(قطر‎在xml测验报告中实际上是二个testsuite name,而宏中的测量试验名称(test_name卡塔尔在xml测验报告中是一个testcase name,概念上就如某些混淆,就看你怎么看呢。

当检查点通过时,不会输出任何检查点的新闻。当检查点失利时,会有详细的停业新闻输出来failure节点。

在自家利用过程中发掘贰个标题,当本身还要安装了--gtest_filter参数时,输出的xml报告中依然会包括全体测验案例的新闻,只可是那一个不被执行的测量试验案例的status值为“notrun”。而小编事前以为的输出的xml报告应该只含有笔者索要周转的测量检验案例的音讯。不知是还是不是可提供三个只输出须求进行的测量试验案例的xml报告。因为当自家索要在1000个案例中实行此中1个案例时,在报告中很难找到作者运转的老大案例,固然能够搜寻,但还是很艰辛。

转自

本文由澳门葡萄京官方网站发布于摄影资讯,转载请注明出处:玩转Google开源C 单元测试框架Google Test系列(gtes

关键词: