2014-09-24 11 views
3

现在,我的大多数测试都是针对模型运行的。目前我有大约100次测试。当运行所有这些我看到:运行RSpec时,我的负载和“完成”次数有所不同。我可以加快速度吗?

在3.99秒成品(文件了17.97秒加载)
在3.93秒成品(文件了17.51秒加载)
在2.03秒成品(文件了2.36秒加载)< < <现在似乎更好
在4.27秒成品(文件了17.45秒加载)
在1.98秒成品(文件了2.4秒加载)< < <现在似乎更

总共20秒的延迟对我来说似乎很重要,我随机看到它。这是我应该接受的,还是有更好的办法?随着测试数量的增加,我担心我的开发周期将变得繁琐。我知道我可以运行个人或团体的规格文件。如果可能的话,我想优化整个集合的运行。

不知道什么商品添加,但这里有几个:

  • RSpec的v3.0.4
  • Spring版本1.1.3
  • 的Rails 4.1.5
  • 的Mac OS X 10.9。 4

春状态报告:
.. $弹簧状态
春季运行:

17524春季服务器| app_name |开始137小时前
22503 spring app | app_name | 77小时前开始|发展模式

+0

你尝试['parallel_tests'(https://github.com/grosser/parallel_tests)? – mdesantis 2014-09-24 18:10:32

+0

不是。最大的惩罚似乎是“加载时间”。 parallel_tests看起来像它将处理处理时间。 parallel_tests(高效)会影响加载时间吗? – 2014-09-24 18:27:38

回答

1

首先的 - 确保你与春天的运行您的规格套件:

spring rspec 

这将确保环境被弹簧和RSpec的使用预装的环境预装。

如果您尚未安装弹簧使用RSpec,只需添加spring-commands-rspec到你的Gemfile:

spring stop 

一个你:这样它拿起新的配置

gem "spring-commands-rspec", group: :development 

然后停止春天正在这样做,不要相信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添加到binstub i n bin/rspec。随着到位,我得到一致的附属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 
+0

我编辑了我的问题以显示'spring status'的输出 – 2014-09-24 19:55:11

+0

另外,我不认为我看到您描述的加载时间的异常报告。就我而言,加载时间似乎对我来说很合适。 – 2014-09-24 20:06:08

+0

使用'time'命令确定 – infused 2014-09-24 20:07:42

相关问题