清除 gtest 中的 HasFailure 标志

Clearing HasFailure flag in gtest

我有一个单元测试,用于测试某个函数在一系列输入下是否运行良好:

TEST_F( something, something) {
  std::vector<int> inputFileNumber = { 0, 1 , 2, 3 };
  for(auto i : inputFileNumber ) {
    res = testMethodOverFile(i);
    EXPECT_NEAR(res, results[i], 0.01);
    logIfHasFailure(i);
  }
}

我想知道哪些输入失败了,所以我可以使用 ::testing::Test::HasFailure。不幸的是,一旦设置了标志,我就无法清除它,并且还会记录以下所有索引。 有什么想法吗?

您可能应该改用参数化测试:

TEST_P( something, something)
{
   auto i{GetParam()};
   res = testMethodOverFile(i);
   EXPECT_NEAR(res, results[i], 0.01);
}  

INSTANTIATE_TEST_CASE_P(Default, something, testing::Values(0, 1, 2,3 ));