如何在 gTest 中跳过整个测试服?

问题描述 投票:0回答:0

我有几个测试套件,我希望用户能够通过命令行输入他想运行的测试套件包(我使用的是自定义脚本,所以不是通过 gtest 命令参数)。我希望每个套件都能够成为任意数量包的一部分——我宁愿不创建映射 pf 包来测试名称以使用 gtest-filter。

我是怎么想的——在每个套房里,实施

static void SetUpTestSuit()
{
    if (!_shouldRunSuite())
    {
        // Stop execution of the whole suit here;
    }
}

我期望能够使用 GTEST_SKIP() 来执行此操作,但它不起作用。

我可以做这样的事情:

static void SetUpTestSuite()
{
    if(!_shouldRunSuite())
    {
        m_shouldRunTest = false;
    }
}

void SetUp() override
{
    if(!m_shouldRunTest)
    {
        GTEST_SKIP();
    }
}

但这意味着调用每一个测试,进行 bool 检查,然后跳过——如果套装中有几百个测试应该被跳过,这可能会带来巨大的开销。

有没有一种方法可以在不分别跳过套件中的每一个测试的情况下做到这一点?

c++ googletest
© www.soinside.com 2019 - 2024. All rights reserved.