【问题标题】:google test functions setup() and teardown() is called for each test case or for the whole testsuit谷歌测试函数 setup() 和 teardown() 为每个测试用例或整个测试套件调用
【发布时间】:2018-08-01 02:23:59
【问题描述】:

我正在使用google test并尝试编写测试夹具来测试源代码,在测试夹具中,定义了几个测试用例。

SetUp()TearDown() 函数,对于这些函数,如果有定义,它们会为每个测试用例调用还是只为整个测试套件调用一次?

【问题讨论】:

  • 你读过FAQ吗?
  • 我阅读了谷歌测试文档,找不到任何相关信息
  • SetUpTestCase 和 TearDownTestCase 在给定夹具的所有测试之前/之后调用。 SetUp 和 TearDown 分别在每次测试之前/之后调用。

标签: c++ googletest


【解决方案1】:

每个测试用例都有自己的fixture,所以每次都会调用它们。

【讨论】:

    【解决方案2】:

    Googletest 不会在多个测试中重复使用相同的测试夹具对象。对于每个 TEST_F,googletest 都会创建一个新的测试夹具对象,立即调用SetUp(),运行测试体,调用TearDown(),然后删除测试夹具对象。 Source

    【讨论】:

      【解决方案3】:

      您可以验证是否为每个测试调用了它们,只需输入一些 cout 如下:

      SetUp():

      cout<<"SetUp called\n";
      

      TearDown():

      cout<<"TearDown called\n";
      

      运行您的测试并查看输出,如果它只被调用一次或多次,您会查看它是按测试还是按套件调用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多