gtest发现的问题

filter:
如果传入空字符串“”,不会执行任何测试用例,并不会执行所有
要想执行所有,过滤需要使用“*”,或者使用所有测试案例的共性

disabled:
如果是TEST宏控制的测试用例,直接在测试方法名上加“DISABLED_”即可,
如果是TEST_F或者TEST_P控制的测试用例,也可以在测试方法名加上“DISABLED_”,只把此用例设置无效,不影响同一套件下的其它测试用例;
如果想把整个类的测试用例全部置为无效,需要把测试套件名前加上“DISABLED_”,相对应的测试用例前面也都要加上“DISABLED_”

查看命令
./clientTest --help

已经把所有的测试用例加上了“ICVP”,为什么过滤条件为“”与过滤条件为“ICVP”,检测出来的测试用例数不一致:
filter: ICVP:Running 62 tests from 9 test suites.
filter:
: Running 68 tests from 10 test suites

一、TEST 有两个参数 : test case name 和 test name。test需要归类到test cases。例如: TEST(FactorialTest, Negative) 中 test is named “Negative”, “FactorialTest” 是test case name 。test cases中的test执行是没有顺序的。
二、test fixture :
test fixture只是保存了一个对象或者函数,供其他tests共享使用。 test fixture只是代码共享,资源并不共享。每个test都会拷贝一份fixture使用。 比如说都要访问某个数据库的某张表,比如说都需要起浏览器,都需要调用post方法等。 这个时候每个测试用例单独写就显得很多余,TestFixture就应运而生。

gtest:不可以控制用例执行顺序
死亡测试用例除外,编写死亡测试案例时,TEST的第一个参数,即testcase_name,请使用DeathTest后缀。原因是gtest会优先运行死亡测试案例,应该是为线程安全考虑。
七、死亡测试运行方式

  1. fast方式(默认的方式)

testing::FLAGS_gtest_death_test_style = “fast”;
2. threadsafe方式

testing::FLAGS_gtest_death_test_style = “threadsafe”;

SetUpTestCase

SetUpTestCase以及TearDownTestCase完全独立,不可以包含类中所定义的其它变量或者方法,否则会报错
eg:

class jj{
int err=-1;
static  void SetUpTestCase() {
  err=interface();//错误,不可以使用类中的变量
    }
    };

GTEST并不是完全不可以控制用例执行顺序,从一个suite的用例按照从上到下得顺序执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值