• 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的用例按照从上到下得顺序执行

  • 相关阅读:
    windows10环境下配置Apache-Tomcat并测试联通
    客户听不进去,很强势,太难沟通了,怎么办?
    如何用jxTMS开发一个功能(三)
    23种设计模式 9组合模式
    Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)
    Moonbeam于Moonbase Alpha构建新式XCM对EVM跨链功能
    MySQL执行计划分析
    JavaEE-线程基础(上)
    12、IOC 之基于 Java 的容器配置
    冒泡排序算法(思路分析) [数据结构][Java]
  • 原文地址:https://blog.csdn.net/qq_42215863/article/details/126727783