Google 测试不打印 PASS/FAIL异常退出

问题描述

我运行 gtest 时得到这个输出

[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Test
[ RUN      ] Test.Foo

它在此之后退出

我的代码如下:

//Exception file
class myex : public std::runtime_error {
  myex(const std::string& reason)
        : std::runtime_error(reason){
  }
}

//TestFile

class Test : public testing::Test {

public:
 MockClass mc; // Mock class inherits from Iclass
 std::unique_ptr<classtoTest> obj;

 void SetUp(){
   obj = std::make_unique<classtoTest>(mc);
 }

 void bar() {
  std::string error = "error";
  throw myex(error);
 }
}

TEST_F(Test,Bar) {
 EXPECT_THROW(bar(),myex); //works. Print PASS.
}

TEST_F(Test,Foo) {
 EXPECT_THROW(obj->fn(mc),myex); // doesnot work. Prints not PASS/FAIL.
}

TEST_F(Test,test1) {
 obj->fn(mc); // prints : unkNown file: error: (correctly prints the reason)
}

//ClasstoTest file
class classtoTest {
 void fn(Iclass obj) {
   obj.some_fn();
   throw myex("Error has occurred");
 }
}

我不明白为什么从 classtoTest 抛出的错误被 gtest 识别为

未知文件错误:C++ 异常...

而且,为什么它不显示 PASS/FAIl

EXPECT_THROW(fn(),myex)

但奇怪地退出

如果我犯了任何错误,如果您需要更多信息,请告诉我。 TIA。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)