• 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();//错误,不可以使用类中的变量
        }
        };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

  • 相关阅读:
    Python 实现Tracert追踪TTL值
    【ViT(Vision Transformer)】(一) 中英双语
    SpringCloud-NacosFoundation
    并查集维护集合 ac240食物链
    城市轨道交通站应急照明疏散指示系统设计
    【AI工程论文解读】04-通过Ease.ML/CI实现机器学习模型的持续集成(上)
    julia笔记:函数
    转换类的具体使用教程
    etcd v3版本生产级集群搭建以及实现一键启动脚本
    面试突击:@Autowired 和 @Resource 有什么区别?你学会了吗?
  • 原文地址:https://blog.csdn.net/qq_42215863/article/details/126727783