软件质量之道:gtest之二

生活的主题就是,面对复杂,保持欢喜。

怀特

 

1 保持欢喜

在同一条路上行走,只要比别人走得更久,就能够走出别人没有的距离;只要比别人走得更远,就能看到别人没看到的风景。

心里的想要说的话太多太多,却又无法表达。还是继续前行吧,不能停止脚步,否则将是人生最后悔的一件事吧。


关于“读书”,这幅图就是我想说的了。也许不对,但是每个人都需要自己的理念,有什么想法,坚持下去就好。

下面开始接上面的gtest讲解,主要为gtest的用法。

 

2 参数设置

上一篇中,提到了入口main函数的调用。另外还有一些单元测试的参数设置,例如说每个用例执行多少次,输出测试结果到文件中等。

 

2.1 参数设置方式

对于参数设置,gtest主要提供三种方式:系统环境变量,命令行参数,代码中指定FLAG。

对于环境变量,需要全部大写,例如设置输出时,用到gtest_output,环境变量应该对应命名为GTEST_OUTPUT。

对于命令行参数,可以通过对编译出来的测试程序,执行/?或者--help或者-help来获取具体信息。

此处主要介绍第三种方式,即代码中指定FLAG,原因是一般测试程序不需要每次都进行复杂的配置,基本上都是配置一次即可。如果通过前两种方式,一旦更换平台,又需要重新设置一次,太过繁琐。(当然通过Ant脚本指定的话,可以考虑使用其他方式,设置方式基本相同,不再赘述)

 

2.2 参数设置项

参数设置项主要包含以下部分:

2.2.1 list_tests

输出测试用例列表,不会执行测试用例。这个在代码中实际用途不大,主要用于命令行参数,示例如下。

int main(int argc, char **argv)
{
    testing::GTEST_FLAG(list_tests) = true;
    testing::InitGoogleTest(&argc, argv);
    RUN_ALL_TESTS();
    getchar();
    return 0;
}

输出内容如下。


2.2.2 filter

对执行的测试用例进行过滤,主要支持通配符。这个也是主要用于命令行参数。支持通配符如下。

通配符

表示内容

?

单个字符

*

任意字符

-

排除,例如-a表示排除a测试用例

:

或操作,例如a:b表示a或者b

示例代码如下:

int main(int argc, char **argv)
{
    testing::GTEST_FLAG(filter) = "FMNReg*";
    testing::InitGoogleTest(&argc, argv);
    RUN_ALL_TESTS();
    getchar();
    return 0;
}

输出内容如下:


2.2.3 also_run_disabled_tests

当某个用例,或者某个测试类(class DISABLED_Class : publictesting::Test{};)被标记为DISABLED时,执行时会跳过该用例,如果需要执行,则可以用该参数指定。例如如下代码:


                
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值