从终端运行 rspec 文件后 - 您可以从终端输出查看所有测试的执行持续时间。它看起来像这样:
3 examples, 0 failures, 3 passed
Finished in 65.007918085 seconds
有什么方法可以将该持续时间保存到变量中(例如 - 将测试时间统计信息发送到数据库)?
我相信您可以使用 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
将输出通过管道传输到 shell 并使用正则表达式来提取持续时间。