gpt4 book ai didi

c++ - 如何在单元测试框架 Google Test 中组合测试过滤器?

转载 作者:搜寻专家 更新时间:2023-10-30 23:51:58 25 4
gpt4 key购买 nike

我有几个单元测试用例,它们是我用 Google 测试框架编写的:

  1. 测试类:

    class Test: public testing::Test
    {
    public:
    virtual void SetUp() {}
    virtual void TearDown() {}
    };
  2. 实际测试:

    TEST_F(Test, SubTest1)
    {
    // execute Test logic
    }

    TEST_F(Test, SubTest2)
    {
    // execute Test logic
    }

    TEST_F(Test, SubTest3)
    {
    // execute Test logic
    }

Assumed that I want to display only SubTest1 and SubTest3, what do I have to do? Important is, that I want to see at a central place (main method), which tests are actually executed.

我想,我可以像下面的例子那样“堆叠”过滤器,但这种方法不起作用:

int main(int argc, char** argv)
{
::testing::InitGoogleMock(&argc, argv);

::testing::GTEST_FLAG(filter) = "Test.SubTest1";
::testing::GTEST_FLAG(filter) = "Test.SubTest3";
return RUN_ALL_TESTS();
}

→ 第二个过滤器删除了第一个过滤器,只执行 SubTest3

最佳答案

我试图找到一些官方的 googletest 引用,但我只找到了 this article解释 googletest 过滤器的语法。如果您想运行匹配 2 种不同模式之一的测试用例,您的过滤器应该如下所示:

"FIRST_PATTERN:SECOND_PATTERN"

因此,在您的情况下:

  ::testing::GTEST_FLAG(filter) = "Test.SubTest1:Test.SubTest3";

您还可以使用通配符 ?* 并且可以在 - 符号后添加排除模式。

关于c++ - 如何在单元测试框架 Google Test 中组合测试过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com