当我们运行我们的spec套件时,我遇到了一个有趣的问题,导致我和我的团队很头痛。RSpec套件性能差异
我们的规范套件分为以下子文件夹,并在他们旁边是他们的总执行完成时间:
rspec spec/acceptance 311.67s
rspec spec/controllers 18.97s
rspec spec/decorators 4.39s
rspec spec/helpers 9.45s
rspec spec/lib 16.88s
rspec spec/mailers 5.27s
rspec spec/models 121.05s
rspec spec/presenters 0.03s
rspec spec/workers 19.3s
Total run time: 8m 27s
这肯定可以改进,但总的来说是相当易于管理。
但是,如果我运行rspec spec
并立即运行整个套件,则完成的总时间为27m 11s
!
因此,显然我们正在做的事情是在一次运行时显着影响整个套件的性能。我希望能够得到一些关于我可以开始尝试解决此问题的指示。
如果有帮助,我已为我的spec_helper.rb
文件提前here
感谢,
乔
你有没有对运行rspec的'一个spec'探查?随着时代的巨大差异,我认为重度消费者会跳出来。类似['perftools.rb'](https://github.com/tmm1/perftools.rb)支持方法调用图可能会有帮助。 – 2013-05-09 03:08:28
分析能告诉你什么?运行'rspec spec --profile'或将'--profile'添加到'〜/ .rspec'文件中。它会向您显示10个最慢的测试。 – adarsh 2013-05-16 04:03:20
好的,我将开始做。 – TheDelChop 2013-05-16 14:16:00