GTEST 如何跳过测试并将结果标记为已跳过

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

我有以下逻辑

        ASSERT_TRUE(
            GenerateNewUser() && "Could not generate a new user. This happens e.g. when the candy server is down.");

我还在这里分享了GenerateNewUser()以防万一

bool CFlows::GenerateNewUser() {
    if (gKeepOldUser) {
        return true;
    }

    LOG_FLOW_STEP_FUNC();
    ExecuteConsoleCommand("debug_message_box disable");

    KingdomLogout();
    ExecuteConsoleCommand("progress 1");
    DeadSleep(5000ms);

    ExecuteConsoleCommand("debug_message_box enable");
    DisableAllABTestsAndPlugins();
    ExecuteConsoleCommand("locale us");
    CRequests::ExecuteRestApiCommand(CRequests::CmdResetLives, "");
    ExecuteConsoleCommand("semidurable reset");
    Log("Done");
    return true;
}

我想要实现的是当断言失败时,我想跳过 GTEST 并同时将测试结果标记为已跳过。

我检查了 GTEST_SKIP() ,但我不知道它是否会起作用以及是否会将测试状态标记为已跳过。

我需要一些建议和帮助

c++ googletest
1个回答
0
投票

这可能有用。

if (GenerateNewUser())
{
  SUCCEED();
}
else
{
  GTEST_SKIP() << "Could not generate a new user. This happens e.g. when the candy server is down.";
}
© www.soinside.com 2019 - 2024. All rights reserved.