是否可以在谷歌测试运行中将测试标记为需要很长时间



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

TEST(something, thing) {
   std::cout << "This might take a few secondsn";
   ASSERT_EQ(expected_result, long_computation());
}

这与打印的内容不能很好地融合。谷歌测试中是否有此功能?我找不到任何相关的东西。有什么方法可以让最goggest理解它,向用户打印提示,甚至在测试运行时间过长的情况下报告错误?或者任何这样做的插件?感谢

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

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

相关内容

最新更新