从终端运行rspec文件后 - 您可以看到终端输出的所有测试的执行持续时间。它看起来像这样:
3 examples, 0 failures, 3 passed
Finished in 65.007918085 seconds
有没有办法将该持续时间保存到变量(例如 - 将测试时间统计信息发送到数据库)?
答案 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