目前,我的大多数测试都是针对模型运行的。目前我有大约100个测试。在运行它们时,我看到了:
在3.99秒内完成(文件加载时间为17.97秒)
完成3.93秒(文件加载时间为17.51秒)
在2.03秒内完成(文件加载2.36秒)<<<现在看来好多了
在4.27秒内完成(文件需要17.45秒才能加载)
在1.98秒内完成(文件加载2.4秒)<<<现在看起来好多了
总共20秒延迟对我来说似乎很多,我随机看到它。这是我应该接受的,还是有更好的方法?随着测试数量的增加,我担心我的开发周期会变得很麻烦。我知道我可以运行单个或一组规范文件。如果可能的话,我想优化运行整个集合。
不确定要添加哪些项目,但这里有一些:
17524 spring server | app_name | 137小时前开始 22503春季应用程序| app_name | 77小时前开始|发展模式
答案 0 :(得分:1)
首先 - 确保使用spring运行规范套件:
spring rspec
这将确保环境由spring预加载,并且RSpec使用预加载的环境。
如果您尚未使用rspec设置spring,只需将spring-commands-rspec
添加到您的Gemfile中:
gem "spring-commands-rspec", group: :development
然后停止弹簧以便它获取新配置:
spring stop
您正在这样做,不要相信RSpec报告的加载时间。您看到的加载时间数可能非常不准确。使用弹簧运行RSpec时,加载时间似乎是指弹簧首次启动的时间:
> time spring rspec
Finished in 9.12 seconds (files took 1 minute 11.36 seconds to load)
345 examples, 0 failures
spring rspec 0.45s user 0.06s system 4% cpu 10.304 total
正如你所看到的,RSpec报告说加载需要1分11.36秒,但实际上整个套件在10.3秒内加载并运行!
如果我在2分钟后再次进行测试:
> time spring rspec
Finished in 9.01 seconds (files took 3 minutes 18.5 seconds to load)
345 examples, 0 failures
spring rspec 0.44s user 0.06s system 4% cpu 10.209 total
<强>更新强>
错误报告的加载时间存在一个未解决的问题:
https://github.com/jonleighton/spring-commands-rspec/issues/18
此问题有一种解决方法,即将Rspec.configuration.start_time = Time.now
添加到bin/rspec
中的binstub。有了这个,我得到一致的1秒加载时间:
time spring rspec
Finished in 8.46 seconds (files took 0.53673 seconds to load)
345 examples, 0 failures
spring rspec 0.46s user 0.06s system 5% cpu 9.214 total