是否可以将测试标记为在googletest运行中花费很长时间

时间:2015-01-11 10:55:26

标签: c++ googletest

我的大多数测试都很快完成,所花费的时间并不明显。但其中一些需要几秒钟。我想给用户打印一个提示:

TEST(something, thing) {
   std::cout << "This might take a few seconds\n";

   ASSERT_EQ(expected_result, long_computation());
}

这与打印的内容并不完美融合。 googletest中是否有此功能?我找不到任何相关的东西。有什么方法可以让它最清楚地了解它,给用户打印一个提示,甚至在测试运行时间过长时报告错误?或者这样做的任何插件? THX

TEST(something, thing, max_time: 3 seconds) {
  ASSERT_EQ(expected_result, long_computation());
}

1 个答案:

答案 0 :(得分:0)

我不确定是否存在这样的情况,但我相信您可以至少部分地定制一些您想要的功能。 您可以自己测量测试执行的时间,并添加ASSERT_GT(time_limit,measured_time)等语句。 考虑使用https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#logging-additional-information来编写时间,或者使用&#34; long&#34; /&#34; fast&#34;属性。 考虑使用https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#running-a-subset-of-the-tests仅运行快速或仅运行长测试,例如。只运行快速测试(前提是你将所有长测试命名为* Long):./ foo_test --gtest_filter = - * Long