【问题标题】:Boost Unit Test timing mechanismBoost Unit Test 计时机制
【发布时间】:2012-05-09 14:23:50
【问题描述】:

Boost 单元测试框架中是否有一些内置机制来检查时间问题。例如:

  • 报告每次测试的时间

  • 检查超过给定时间限制的测试

  • 你知道的任何与时间有关的事情

我尝试过使用--report_level 或--log_level 等命令行参数,但没有报告任何与时序相关的内容。

谢谢

【问题讨论】:

  • 对于第二个要点,您的个人单元测试应该自己做。创建一个基准时间,执行您的操作,并计算从基准时间开始所用的时间。然后断言它小于 X。这清楚地表明该单元必须在那个时间内完成其操作。
  • 你认为这个检查可以在一个fixture的析构函数中完成以减少代码重复吗?

标签: c++ performance unit-testing boost


【解决方案1】:
  1. 报告每次测试的时间: 要让 Boost.Test 报告时序,您需要指定“--report_level=detailed --log_level=all”。测试时间将在输出中丢失,但看起来像:

离开测试用例“my_test_1”;测试时间:220mks
离开测试用例“my_test_2”;测试时间:219mks
...

  1. 检查超过给定时间限制的测试: 我从来没有测试过,但是 boost 测试框架提供了一个decorator timeout

【讨论】:

  • '--log_level=test_suite' 似乎已经足够了。
【解决方案2】:
  1. 您可以为测试用例指定超时时间
  2. 详细报告模式下每个测试单元的Boost.Test报告时间
  3. 我希望尽快实施更高级的工具来进行计时测试(ish)

【讨论】:

  • 如何为测试用例指定超时时间?在命令行上?
  • @GennadiyRozental:(3)有什么进展吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多