gpt4 book ai didi

ruby - 如何在 Rspec 中找到每个测试用例所花费的时间

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:05 25 4
gpt4 key购买 nike

我在我的项目中使用 Rspec,我想在其中打印每个测试用例所花费的时间,Rspec 是否可以提供任何预构建函数?我可以通过 example.execution_result.started_at 获取测试用例的开始时间,但我不知道如何获取测试用例的结束时间,如果我可以获取结束时间,那么我可以减去从开始时间开始的结束时间,以获得每个测试用例的持续时间。这个地方有人帮我吗?我写了这段代码

around(:each) do |example|
startTime=Time.now
var=example.run
puts var
endTime=Time.now
duration=endTime-startTime
puts "Time Taken->#{duration.to_f/60.to_f}"
end

但我坚信 Rspec 必须提供一些预定义的方法来返回每个测试用例的持续时间,你知道吗?

最佳答案

RSpec 有一个 example_status_persistence_file_path 配置,它为每个单独的测试生成一个包含运行时间的文件。

例如,给定以下 RSpec 配置/示例:

require 'rspec/autorun'

# Enable the reporting
RSpec.configure do |c|
c.example_status_persistence_file_path = 'some_file.txt'
end

# Run some tests
RSpec.describe 'some thing' do
it 'does stuff' do
sleep(3)
end

it 'does more stuff' do
sleep(2)
end
end

生成每个示例的状态和运行时间的报告:

example_id      | status | run_time     |--------------- | ------ | ------------ |my_spec.rb[1:1] | passed | 3.02 seconds |my_spec.rb[1:2] | passed | 2.01 seconds |

关于ruby - 如何在 Rspec 中找到每个测试用例所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53588867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com