获取rspec文件的执行时间

时间:2013-03-07 11:41:26

标签: ruby rspec

从终端运行rspec文件后 - 您可以看到终端输出的所有测试的执行持续时间。它看起来像这样:

3 examples, 0 failures, 3 passed
Finished in 65.007918085 seconds

有没有办法将该持续时间保存到变量(例如 - 将测试时间统计信息发送到数据库)?

2 个答案:

答案 0 :(得分:1)

将输出传递给shell并使用正则表达式来提取持续时间。

答案 1 :(得分:1)

我相信您可以使用rspec自定义格式化程序来访问此数据,并控制输出的显示方式。如果你很幸运,其他人可能已经写过你可以重复使用的。或者,您可能只需要对已经使用的格式化程序进行子类化,并将方法start_dump扩展为使用持续时间数据执行一些有趣的操作,然后调用super。

要调用自定义格式化程序,只需执行

即可
rspec -f MyFormatter name_of_test_spec.rb

有关rspec自定义格式化程序的更多信息:

https://www.relishapp.com/rspec/rspec-core/docs/formatters/custom-formatters

http://rubydoc.info/gems/rspec-core/2.6.4/RSpec/Core/Formatters/BaseFormatter