生活的主题就是,面对复杂,保持欢喜。
怀特
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时,执行时会跳过该用例,如果需要执行,则可以用该参数指定。例如如下代码: