【问题标题】:Google test: Can I query the name of the test fixture?谷歌测试:我可以查询测试夹具的名称吗?
【发布时间】:2016-11-02 23:07:10
【问题描述】:

我想使用 google test 编写一个派生自 ::testing::Test 的类,并主要使用构造函数或 SetUp 和 TearDown() 为其添加功能。看起来 SetUp/TearDown 是目前为止的方法。我的问题是:

假设我们有一个像这样的小型测试夹具:

TEST_F (PerformanceTest, Inputs)
{
   EXPECT_EQ (0.0, performSaxpy(10, 4.0F, 3.0F, 2.0F));
   EXPECT_EQ (0.0, performSaxpy(1, 5.0F, 4.0F, 3.0F));
   EXPECT_EQ (0.0, performSaxpy(10, 12.0F, 2.0F, 1.0F));
}

我想要做的是,当调用 SetUp() 函数时,我希望其中的代码查询测试夹具类的名称 (PerformanceTest) 和测试对象的名称 (Inputs)。

为什么我需要这样做?因为我想将我的测试夹具的结果写入一个 xml 文件。由于各种原因,我无法使用 google test 已经提供的默认 XML 输出格式。但是,在google test的默认XML输出中,我们得到了测试夹具类和测试对象的名称,所以希望我们可以通过自定义来实现……这可能吗?

【问题讨论】:

  • 你在找::testing::UnitTest::GetInstance()->current_test_info()->name()
  • 太好了,有没有针对 ::testing::UnitTest 提供的所有函数的 API 参考?
  • 我猜:github.com/google/googletest/blob/… :trollface: 我想如果你寻找 TestInfo google test 你可以找到更多细节
  • 我想你可以从这里开始:github.com/google/googletest/blob/…(看看获取当前测试的名称部分)
  • 太好了,这正是我需要的!

标签: xml unit-testing googletest


【解决方案1】:

您可以使用 TestInfo 类获取测试名称:

::testing::UnitTest::GetInstance()->current_test_info()->name()

您可以找到更多详情here

【讨论】:

  • 您的链接似乎已失效;我有一个 404
  • 谢谢!他们似乎已经重命名了页面 - 我更新了链接。
  • 链接又死了:)
  • 已更新。旁注 - 任何人都应该能够修复损坏的链接。
猜你喜欢
  • 1970-01-01
  • 2012-02-20
  • 2011-03-10
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
相关资源
最近更新 更多