玩转Google开源C++单元测试框架GoogleTest系列(gtest)之六-运行参数.docx
上传人:sy****28 上传时间:2024-09-14 格式:DOCX 页数:4 大小:19KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

玩转Google开源C++单元测试框架GoogleTest系列(gtest)之六-运行参数.docx

玩转Google开源C++单元测试框架GoogleTest系列(gtest)之六-运行参数.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://www.cnblogs.com/coderzh/archive/2009/04/10/1432789.html"玩转Google开源C++单元测试框架GoogleTest系列(gtest)之六-运行参数一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参数,gtest提供了三种设置的途径:1.系统环境变量2.命令行参数3.代码中指定FLAG因为提供了三种途径,就会有优先级的问题,有一个原则是,最后设置的那个会生效。不过总结一下,通常情况下,比较理想的优先级为:命令行参数>代码中指定FLAG>系统环境变量为什么我们编写的测试案例能够处理这些命令行参数呢?是因为我们在main函数中,将命令行参数交给了gtest,由gtest来搞定命令行参数的问题。int_tmain(intargc,_TCHAR*argv[]){testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}这样,我们就拥有了接收和响应gtest命令行参数的能力。如果需要在代码中指定FLAG,可以使用testing::GTEST_FLAG这个宏来设置。比如相对于命令行参数--gtest_output,可以使用testing::GTEST_FLAG(output)="xml:";来设置。注意到了,不需要加--gtest前缀了。同时,推荐将这句放置InitGoogleTest之前,这样就可以使得对于同样的参数,命令行参数优先级高于代码中指定。int_tmain(intargc,_TCHAR*argv[]){testing::GTEST_FLAG(output)="xml:";testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}最后再来说下第一种设置方式-系统环境变量。如果需要gtest的设置系统环境变量,必须注意的是:1.系统环境变量全大写,比如对于--gtest_output,响应的系统环境变量为:GTEST_OUTPUT2.有一个命令行参数例外,那就是--gtest_list_tests,它是不接受系统环境变量的。(只是用来罗列测试案例名称)三、参数列表了解了上面的内容,我这里就直接将所有命令行参数总结和罗列一下。如果想要获得详细的命令行说明,直接运行你的案例,输入命令行参数:/?或--help或-help1.测试案例集合命令行参数说明--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前缀,比如://TeststhatFoodoesAbc.TEST(FooTest,DISABLED_DoesAbc){}classDISABLED_BarTest:publictesting::Test{};//TeststhatBardoesXyz.TEST_F(DISABLED_BarTest,DoesXyz){}--gtest_repeat=[COUNT]设置案例重复运行次数,非常棒的功能!比如: