在 google 测试框架中退出 FATAL 断言

exiting on FATAL asserts in google test framework

当我们发现致命断言导致任何进一步测试无用时,是否有任何选项或方法可以完全退出 google 测试框架而不执行任何进一步测试?

库没有提供特定的机制来中止执行,但没有什么能阻止您使用标准断言来中止程序执行。

#include <cassert>

TEST(TestSuite, TestCase)
{
    assert(<fatal condition>);
    // ...
}

如果致命情况是您可以控制的某些测试设置的结果,您可能有兴趣了解 Google 测试对 Death Tests 的支持。

处理此问题的一种方法是使用 GTEST_FATAL_FAILURE_ 宏。你可以这样使用它

#include <gtest/gtest.h>

TEST(TestSuite, TestCase)
{
    // ...
    
    if (somethingHappens) {
      GTEST_FATAL_FAILURE_("Text to display when the failure happens");
    }    
}

触发后,您将在 CLI 中看到它

/home/yourname/yourpath/yourfile.cpp:13: Failure
Text to display when the failure happens