【威尼斯人平台】运营参数

发布时间:2019-02-20  栏目:威尼斯人平台  评论:0 Comments

安排参数

  • 三脚架类型:快装板
  • 其他品质:通用金爵KJ体系, 金士KS体系, 勇士KB体系(L=40mm)

查看完整参数>>

转自

布局参数

  • 三脚架类型:快装板
  • 此外属性:通用金爵KJ连串, 金士KS连串, 勇士KB体系(L=50mm)

翻看完整参数>>

布署参数

  • 三脚架类型:快装板
  • 其余属性:通用金爵KJ连串, 金士KS种类, 勇士KB序列(L=77mm)

查看完整参数>>

一、前言

利用gtest编写的测试案例寻常自身就是八个可执行文件,因而运转起来卓殊有利。同时,gtest也为咱们提供了一与日俱增的运作参数(环境变量、命令行参数或代码里钦点),使得大家得以对案例的施行进行部分使得的支配。

贰 、基本介绍

【威尼斯人平台】运营参数。眼下提到,对于运转参数,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前缀了。同时,推荐将那句放置Init谷歌Test从前,那样就可以使得对于同一的参数,命令行参数优先级高于代码中钦定。

威尼斯人平台 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,它是不接受系统环境变量的。(只是用来罗列测试案例名称)

③ 、参数列表

摸底了地点的内容,小编那里就直接将富有命令行参数总括和陈列一下。即使想要拿到详细的命令行表明,直接运行你的案例,输入命令行参数:/?
或 –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下有效。

四 、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测试报告中实际上是3个testsuite
name,而宏中的测试名称(test_name)在xml测试报告中是1个testcase
name,概念上似乎不怎么混淆,就看你怎么看呢。

当检查点通过时,不会输出任何检查点的消息。当检查点失利时,会有详尽的败诉新闻输出来failure节点。

在作者动用进度中发觉3个题材,当自个儿还要设置了–gtest_filter参数时,输出的xml报告中照旧会蕴藏全体测试案例的消息,只然而那多少个不被执行的测试案例的status值为“notrun”。而自作者以前觉得的出口的xml报告应该只包含作者索要周转的测试案例的音信。不知是或不是可提供二个只输出需求实施的测试案例的xml报告。因为当本人索要在一千个案例中推行其中2个案例时,在报告中很难找到本身运维的要命案例,尽管可以搜索,但如故很辛劳。

五、总结

本篇首要介绍了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.玩转谷歌开源C++单元测试框架谷歌 Test连串(gtest)之二 –
断言

3.玩转谷歌(Google)开源C++单元测试框架谷歌(Google) Test系列(gtest)之三 –
事件机制

威尼斯人平台 ,4.玩转谷歌开源C++单元测试框架谷歌 Test系列(gtest)之四 –
参数化

5.玩转Google开源C++单元测试框架谷歌 Test种类(gtest)之五 –
长逝测试 

6.玩转谷歌开源C++单元测试框架谷歌 Test连串(gtest)之六 –
运转参数

7.玩转谷歌(Google)开源C++单元测试框架谷歌(Google) Test序列(gtest)之七 –
深切剖析gtest

8.玩转谷歌开源C++单元测试框架谷歌 Test种类(gtest)之八 –
营造自身的单元测试框架

留下评论

网站地图xml地图